{
  "openapi": "3.1.0",
  "info": {
    "title": "HEVN API",
    "description": "Backend API for HEVN mobile neobank",
    "version": "0.1.2"
  },
  "paths": {
    "/api/v1/auth/start": {
      "post": {
        "tags": [
          "auth",
          "auth"
        ],
        "summary": "Auth Start",
        "description": "Start authentication: verify TEE signature, then send OTP to email.",
        "operationId": "auth_start_api_v1_auth_start_post",
        "parameters": [
          {
            "name": "device-id",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Device-Id"
            }
          },
          {
            "name": "user-agent",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "User-Agent"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthStartRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthStartResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/email_otp": {
      "post": {
        "tags": [
          "auth"
        ],
        "summary": "Auth Email Otp",
        "description": "Verify email OTP code. Sets email_otp_validated flag on session.",
        "operationId": "auth_email_otp_api_v1_auth_email_otp_post",
        "parameters": [
          {
            "name": "device-id",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Device-Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthEmailOtpRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/totp": {
      "post": {
        "tags": [
          "auth"
        ],
        "summary": "Auth Totp",
        "description": "Verify TOTP code. Sets totp_validated flag on session.",
        "operationId": "auth_totp_api_v1_auth_totp_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TotpLoginRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/submit_signed_jwt": {
      "post": {
        "tags": [
          "auth"
        ],
        "summary": "Submit Signed Jwt",
        "description": "Verify TEE-signed Google JWT attestation. Sets tee_validated flag on session.\n\nChecks:\n- msg in auth_payload == session_key (binds attestation to this session)\n- hash_email matches session email\n- Ed25519 signature is valid using TEE_PUBLIC_KEY",
        "operationId": "submit_signed_jwt_api_v1_auth_submit_signed_jwt_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitSignedJwtRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth": {
      "post": {
        "tags": [
          "auth"
        ],
        "summary": "Auth Complete",
        "description": "Complete auth: issue refresh token if all required steps are validated.",
        "operationId": "auth_complete_api_v1_auth_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "user-agent",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "User-Agent"
            }
          },
          {
            "name": "cf-ipcountry",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cf-Ipcountry"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthCompleteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthSessionResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/privy": {
      "post": {
        "tags": [
          "auth",
          "auth"
        ],
        "summary": "Auth Privy",
        "description": "Authenticate via Privy embedded wallet signature.\n\n1. Recover signer from signature of \"I am the owner of {email}\"\n2. Verify via Privy API that this address is the embedded wallet for the email\n3. Get or create user, save privy_address, deploy smart wallet if needed\n4. Return HEVN refresh token",
        "operationId": "auth_privy_api_v1_auth_privy_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "device-id",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Device-Id"
            }
          },
          {
            "name": "device-name",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Device-Name"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PrivyLoginRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PrivyLoginResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/refresh": {
      "post": {
        "tags": [
          "auth"
        ],
        "summary": "Refresh Session",
        "description": "Exchange a refresh token for a short-lived session token (10 min).\n\nIf user_id differs from the token owner, checks team membership\nand issues a delegated session token (sub=owner, uid=target).",
        "operationId": "refresh_session_api_v1_auth_refresh_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "user-agent",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "User-Agent"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionTokenResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/kyc": {
      "put": {
        "tags": [
          "User"
        ],
        "summary": "Create or get current user",
        "description": "Create or update user profile data for KYC.",
        "operationId": "update_user_kyc_data_api_v1_user_kyc_put",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/user": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Get current user",
        "description": "Get the profile of the currently authenticated user.",
        "operationId": "get_current_user_api_v1_user_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "device-id",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Device-Id"
            }
          },
          {
            "name": "device-type",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "ios",
              "title": "Device-Type"
            }
          },
          {
            "name": "device-name",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "ios",
              "title": "Device-Name"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/kyc_link": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Submit KYC data",
        "description": "Get Swipelux KYC verification link.",
        "operationId": "submit_kyc_api_v1_user_kyc_link_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KycStatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/kyc/status": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Get KYC status",
        "description": "Check the current KYC verification status. Use provider=align for Align.",
        "operationId": "get_kyc_status_api_v1_user_kyc_status_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "provider",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/FiatProvider",
              "default": "swipelux"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KycStatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/geo": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Geocode address",
        "description": "Search address via Google Maps Geocoding API and return structured address components.",
        "operationId": "geocode_address_api_v1_user_geo_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Query"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserAddress"
                  },
                  "title": "Response Geocode Address Api V1 User Geo Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/event": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Track user event",
        "description": "Proxy user events to Customer.io for analytics tracking.",
        "operationId": "track_user_event_api_v1_user_event_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserEventRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Track User Event Api V1 User Event Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/settings": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Get user settings",
        "operationId": "get_user_settings_api_v1_user_settings_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserSettings-Output"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "User"
        ],
        "summary": "Update user settings",
        "operationId": "update_settings_api_v1_user_settings_put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserSettings-Input"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserSettings-Output"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/bank_requested": {
      "put": {
        "tags": [
          "User"
        ],
        "summary": "Update requested bank rails",
        "operationId": "update_bank_requested_api_v1_user_bank_requested_put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BankRequestedSettings-Input"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankRequestedSettings-Output"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/notifications": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Get recent notifications",
        "description": "Return recent notifications (email/push) for the current user.",
        "operationId": "get_notifications_api_v1_user_notifications_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/avatar": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Upload user avatar",
        "description": "Upload avatar image to public storage and save URL to user profile.",
        "operationId": "upload_avatar_api_v1_user_avatar_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AvatarUploadRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AvatarUploadResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/devices": {
      "get": {
        "tags": [
          "Devices"
        ],
        "summary": "List user's devices",
        "description": "Get all devices associated with the authenticated user's account.",
        "operationId": "list_devices_api_v1_devices_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DeviceResponse"
                  },
                  "title": "Response List Devices Api V1 Devices Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/device": {
      "put": {
        "tags": [
          "Devices"
        ],
        "summary": "Set push notification token",
        "description": "Set or update the push notification token for the current device. Pass an empty pushToken to unsubscribe the device. Web subscriptions arrive as JSON-stringified PushSubscription; native tokens (APNs/FCM) are short strings.",
        "operationId": "update_push_token_api_v1_device_put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "device-id",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Device-Id"
            }
          },
          {
            "name": "device-type",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "ios",
              "title": "Device-Type"
            }
          },
          {
            "name": "device-name",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "ios",
              "title": "Device-Name"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PushTokenRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/activity": {
      "get": {
        "tags": [
          "Activity"
        ],
        "summary": "Recent account activity",
        "description": "Return recent notifications attributed to the current user. Each item carries its type, the originating device label, and the client IP captured at trigger time (when available).",
        "operationId": "get_activity_api_v1_activity_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bank/{rail}/pre-approve": {
      "post": {
        "tags": [
          "Banks",
          "banks"
        ],
        "summary": "Pre-approve a bank rail",
        "description": "Read-only KYC info for the rail. Does not mutate Bank rows.",
        "operationId": "pre_approve_bank_api_v1_bank__rail__pre_approve_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "rail",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/BankRail"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankPreApproveResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/bank/{rail}/activate": {
      "post": {
        "tags": [
          "Banks",
          "banks"
        ],
        "summary": "Activate a bank rail",
        "description": "Create or upsert a Bank row for the given rail. Idempotent.",
        "operationId": "activate_bank_api_v1_bank__rail__activate_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "rail",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/BankRail"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/banks/payin/quote": {
      "post": {
        "tags": [
          "Banks",
          "banks"
        ],
        "summary": "Get a pooled bank payin quote",
        "description": "Create a Swipelux quote for paying into the user's custodial wallet via a pooled bank rail.",
        "operationId": "create_bank_payin_quote_api_v1_banks_payin_quote_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BankPayinQuoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankPayinQuoteResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/banks/payin/quote/submit": {
      "post": {
        "tags": [
          "Banks",
          "banks"
        ],
        "summary": "Submit a pooled bank payin quote",
        "description": "Execute a Swipelux payin quote and return payment instructions.",
        "operationId": "submit_bank_payin_quote_api_v1_banks_payin_quote_submit_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BankPayinQuoteSubmitRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankPayinQuoteSubmitResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/banks/payin/quote/{quote_id}/cancel": {
      "post": {
        "tags": [
          "Banks",
          "banks"
        ],
        "summary": "Cancel a locally tracked bank payin quote",
        "description": "Mark the local FiatTransfer created from a Swipelux payin quote as canceled.",
        "operationId": "cancel_bank_payin_quote_api_v1_banks_payin_quote__quote_id__cancel_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "quote_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Quote Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankPayinQuoteCancelResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/banks/activate": {
      "post": {
        "tags": [
          "Banks",
          "banks"
        ],
        "summary": "Activate multiple bank rails",
        "description": "Create or upsert Bank rows for multiple rails in one request. Returns a per-rail result so one pending or failed rail does not abort the batch.",
        "operationId": "activate_banks_api_v1_banks_activate_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BankActivateRailsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankActivateRailsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/banks": {
      "get": {
        "tags": [
          "Banks",
          "banks"
        ],
        "summary": "List all bank rails",
        "description": "Return every supported bank rail. Rails the user has activated come from the Bank table (with status / iban_data); rails the user has not activated are returned from the static BANK_INFO registry with status=not_started and iban_data=None. If a rail's provider KYC is APPROVED but no ACTIVE Bank row exists yet, syncs lazily from Swipelux / Align before returning.",
        "operationId": "list_banks_api_v1_banks_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BanksListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/export/account_confirmation/{bank_id}": {
      "get": {
        "tags": [
          "Exports"
        ],
        "summary": "Download account confirmation PDF",
        "description": "Generate and return account confirmation PDF for a Bank row.",
        "operationId": "get_account_confirmation_pdf_api_v1_export_account_confirmation__bank_id__get",
        "parameters": [
          {
            "name": "bank_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Bank Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Bank not found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/export/account_statement/{bank_id}": {
      "get": {
        "tags": [
          "Exports"
        ],
        "summary": "Download account statement PDF",
        "description": "Generate and return account statement PDF with transactions for the period.",
        "operationId": "get_account_statement_pdf_api_v1_export_account_statement__bank_id__get",
        "parameters": [
          {
            "name": "bank_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Bank Id"
            }
          },
          {
            "name": "period_start",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Period Start"
            }
          },
          {
            "name": "period_end",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Period End"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Bank not found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/export/transaction_receipt/{transaction_id}": {
      "get": {
        "tags": [
          "Exports"
        ],
        "summary": "Get transaction receipt PDF download link",
        "description": "Generate receipt PDF for a transaction, upload to Supabase, return download link.",
        "operationId": "get_transaction_receipt_pdf_api_v1_export_transaction_receipt__transaction_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "transaction_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Transaction Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Get Transaction Receipt Pdf Api V1 Export Transaction Receipt  Transaction Id  Get"
                }
              }
            }
          },
          "404": {
            "description": "Transaction not found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/export/verify/{doc_id}": {
      "get": {
        "tags": [
          "Exports"
        ],
        "summary": "Verify generated document",
        "description": "Verify a generated PDF document by its internal ID and return metadata.",
        "operationId": "verify_document_api_v1_export_verify__doc_id__get",
        "parameters": [
          {
            "name": "doc_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Doc Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentVerifyResponse"
                }
              }
            }
          },
          "404": {
            "description": "Document not found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/utils/parse-iban": {
      "post": {
        "tags": [
          "Utils"
        ],
        "summary": "Parse IBAN from plain text",
        "description": "Extract SEPA IBAN data from plain text using AI. Returns structured ImportIbanSepaData.",
        "operationId": "parse_iban_text_api_v1_utils_parse_iban_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParseIbanTextRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportIbanSepaData"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/utils/rates/{currency}": {
      "get": {
        "tags": [
          "Utils"
        ],
        "summary": "Get FX rates",
        "description": "Public endpoint. Returns FX rates from the given currency to USD: `bankTransfer` (Swipelux), `card` (Wirex), and `usdRate` (exchangerate-api.com). `usdRate` is populated for every currency in the invoice Currency enum (G10 + AED/HKD).",
        "operationId": "get_rate_api_v1_utils_rates__currency__get",
        "parameters": [
          {
            "name": "currency",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Currency"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RateResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/utils/bic/{bic}": {
      "get": {
        "tags": [
          "Utils"
        ],
        "summary": "Get BIC (SWIFT) info",
        "description": "Look up bank/branch info by BIC code via API Ninjas.",
        "operationId": "get_bic_info_api_v1_utils_bic__bic__get",
        "parameters": [
          {
            "name": "bic",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Bic"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BicInfoResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/utils/rtn/{routing_number}": {
      "get": {
        "tags": [
          "Utils"
        ],
        "summary": "Validate US routing number (RTN)",
        "description": "Look up US ABA/RTN routing number via API Ninjas.",
        "operationId": "get_rtn_info_api_v1_utils_rtn__routing_number__get",
        "parameters": [
          {
            "name": "routing_number",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Routing Number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RtnLiteInfoResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/utils/iban/{iban}": {
      "get": {
        "tags": [
          "Utils"
        ],
        "summary": "Validate IBAN",
        "description": "Validate IBAN and return bank/account info via API Ninjas.",
        "operationId": "validate_iban_api_v1_utils_iban__iban__get",
        "parameters": [
          {
            "name": "iban",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Iban"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IbanInfoResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/webhook/kyc": {
      "post": {
        "tags": [
          "Webhook",
          "Webhook"
        ],
        "summary": "Webhook Kyc",
        "description": "Receive KYC webhook payload; log body and return 200.",
        "operationId": "webhook_kyc_api_v1_webhook_kyc_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookAckResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/webhook/swipelux": {
      "post": {
        "tags": [
          "Webhook",
          "Webhook"
        ],
        "summary": "Webhook Swipelux",
        "description": "Handle Swipelux webhooks: customer.verification_changed, transfer.*.",
        "operationId": "webhook_swipelux_api_v1_webhook_swipelux_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookAckResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/webhook/base-spend-permission": {
      "post": {
        "tags": [
          "Webhook",
          "Webhook"
        ],
        "summary": "Webhook Base Spend Permission",
        "description": "Handle Hook0 Base SpendPermission events.",
        "operationId": "webhook_base_spend_permission_api_v1_webhook_base_spend_permission_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookAckResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/webhook/cdp-wallet-activity": {
      "post": {
        "tags": [
          "Webhook",
          "Webhook"
        ],
        "summary": "Webhook Cdp",
        "description": "Process Coinbase CDP transfer webhooks.",
        "operationId": "webhook_cdp_api_v1_webhook_cdp_wallet_activity_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookAckResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/webhook/align": {
      "post": {
        "tags": [
          "Webhook",
          "Webhook"
        ],
        "summary": "Webhook Align",
        "description": "Process Align webhook (customer.kycs.updated, virtual_account.* etc.).",
        "operationId": "webhook_align_api_v1_webhook_align_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AlignWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookAckResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/webhook/resend": {
      "post": {
        "tags": [
          "Webhook",
          "Webhook"
        ],
        "summary": "Webhook Resend",
        "description": "Handle Resend email webhooks with Svix signature verification.",
        "operationId": "webhook_resend_api_v1_webhook_resend_post",
        "parameters": [
          {
            "name": "svix-id",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Svix-Id"
            }
          },
          {
            "name": "svix-timestamp",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Svix-Timestamp"
            }
          },
          {
            "name": "svix-signature",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Svix-Signature"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookAckResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/webhook/firma": {
      "post": {
        "tags": [
          "Webhook",
          "Webhook"
        ],
        "summary": "Webhook Firma",
        "description": "Handle Firma e-signature webhooks.",
        "operationId": "webhook_firma_api_v1_webhook_firma_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookAckResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/webhook/wirex/v2/webhooks/cards": {
      "post": {
        "tags": [
          "Webhook",
          "Webhook"
        ],
        "summary": "Webhook Wirex Cards",
        "operationId": "webhook_wirex_cards_api_v1_webhook_wirex_v2_webhooks_cards_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookAckResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/webhook/wirex/v2/webhooks/balances": {
      "post": {
        "tags": [
          "Webhook",
          "Webhook"
        ],
        "summary": "Webhook Wirex Balances",
        "operationId": "webhook_wirex_balances_api_v1_webhook_wirex_v2_webhooks_balances_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookAckResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/webhook/wirex/v2/webhooks/card-limits": {
      "post": {
        "tags": [
          "Webhook",
          "Webhook"
        ],
        "summary": "Webhook Wirex Card Limits",
        "operationId": "webhook_wirex_card_limits_api_v1_webhook_wirex_v2_webhooks_card_limits_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookAckResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/webhook/wirex/v2/webhooks/activities": {
      "post": {
        "tags": [
          "Webhook",
          "Webhook"
        ],
        "summary": "Webhook Wirex Activities",
        "operationId": "webhook_wirex_activities_api_v1_webhook_wirex_v2_webhooks_activities_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookAckResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/webhook/wirex/webhook/users": {
      "post": {
        "tags": [
          "Webhook",
          "Webhook"
        ],
        "summary": "Webhook Wirex Users",
        "operationId": "webhook_wirex_users_api_v1_webhook_wirex_webhook_users_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookAckResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/webhook/wirex/{path}": {
      "post": {
        "tags": [
          "Webhook",
          "Webhook"
        ],
        "summary": "Webhook Wirex",
        "operationId": "webhook_wirex_api_v1_webhook_wirex__path__post",
        "parameters": [
          {
            "name": "path",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Path"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookAckResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/webhook/privy": {
      "post": {
        "tags": [
          "Webhook",
          "Webhook"
        ],
        "summary": "Privy Webhook",
        "description": "Handle Privy webhook events (Svix-signed).\n\nSecurity-relevant events trigger email alerts to the affected user.",
        "operationId": "privy_webhook_api_v1_webhook_privy_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookAckResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/balance": {
      "get": {
        "tags": [
          "Balance"
        ],
        "summary": "Get wallet balances",
        "description": "Get OMNI, NEAR, EVM and Swipelux wallet balances for authenticated user.",
        "operationId": "get_balances_api_v1_balance_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "wallet_type",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/WalletType"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Wallet Type"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BalancesResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/balance/withdraw_onchain": {
      "post": {
        "tags": [
          "Balance"
        ],
        "summary": "Withdraw to onchain address",
        "description": "Send funds from Swipelux custodial wallet to external onchain address.",
        "operationId": "withdraw_onchain_api_v1_balance_withdraw_onchain_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WithdrawOnchainRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutStatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/balance/sweep": {
      "post": {
        "tags": [
          "Balance"
        ],
        "summary": "Sweep custodial balance",
        "description": "Withdraw all funds from Swipelux custodial wallet to user's Base smart wallet.",
        "operationId": "sweep_custodial_api_v1_balance_sweep_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutStatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/balance/transaction/status/{quote_id}": {
      "get": {
        "tags": [
          "Balance"
        ],
        "summary": "Get transaction status",
        "description": "Check status of any transaction by quote_id.",
        "operationId": "get_transaction_status_api_v1_balance_transaction_status__quote_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "quote_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Quote Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UniversalTransactionResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/balance/oneclick/tokens": {
      "get": {
        "tags": [
          "Balance"
        ],
        "summary": "Get supported tokens for cross-chain swaps",
        "description": "Get list of tokens supported by 1click for cross-chain swaps.",
        "operationId": "get_oneclick_tokens_api_v1_balance_oneclick_tokens_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/v1/balance/payin/quote": {
      "post": {
        "tags": [
          "Balance"
        ],
        "summary": "Get cross-chain payin quote",
        "description": "Create a quote to deposit from any chain to Base USDC.",
        "operationId": "create_payin_quote_api_v1_balance_payin_quote_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayinQuoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UniversalQuoteResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/balance/payin/submit": {
      "post": {
        "tags": [
          "Balance"
        ],
        "summary": "Submit cross-chain payin",
        "description": "Materialize a 1click PAYIN row by deposit address. The quote is re-fetched from /v0/status (no quote state is kept on the backend). Status, origin_tx_hash and destination_tx_hash get filled in by the background 1click explorer sync once the deposit lands.",
        "operationId": "submit_payin_api_v1_balance_payin_submit_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayinSubmitRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/balance/payout/quote": {
      "post": {
        "tags": [
          "Balance"
        ],
        "summary": "Get payout quote",
        "description": "Get quote for payout to contact. Auto-detects payment channel (IBAN/onchain/internal).",
        "operationId": "get_payout_quote_api_v1_balance_payout_quote_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayoutQuoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UniversalQuoteResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/balance/payout/quote/dry_run": {
      "post": {
        "tags": [
          "Balance"
        ],
        "summary": "Estimate payout quote",
        "description": "Estimate payout amount and fees without a contact or provider-side activation.",
        "operationId": "dry_run_payout_quote_api_v1_balance_payout_quote_dry_run_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayoutQuoteDryRunRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutQuoteDryRunResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/balance/payout/quote/submit": {
      "post": {
        "tags": [
          "Balance"
        ],
        "summary": "Activate payout quote",
        "description": "Activate a payout quote and create pending records. Returns deposit address.",
        "operationId": "submit_payout_quote_api_v1_balance_payout_quote_submit_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitPayoutQuoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmitPayoutQuoteResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/address_by_email": {
      "get": {
        "tags": [
          "Wallet"
        ],
        "summary": "Resolve smart wallet address by email",
        "description": "Return or create a smart wallet address for the given email.",
        "operationId": "address_by_email_api_v1_wallet_address_by_email_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Email"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Address By Email Api V1 Wallet Address By Email Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet": {
      "post": {
        "tags": [
          "Wallet"
        ],
        "summary": "Create wallet",
        "description": "Create a new NEAR wallet for authenticated user.",
        "operationId": "create_wallet_api_v1_wallet_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          },
          {
            "name": "device-id",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Device-Id"
            }
          },
          {
            "name": "device-type",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "ios",
              "title": "Device-Type"
            }
          },
          {
            "name": "device-name",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "ios",
              "title": "Device-Name"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WalletCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WalletCreateResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/import": {
      "post": {
        "tags": [
          "Wallet"
        ],
        "summary": "Import external wallet",
        "description": "Import an external EVM wallet to track its balance.",
        "operationId": "import_wallet_api_v1_wallet_import_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportWalletRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OnchainWalletResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/imported": {
      "get": {
        "tags": [
          "Wallet"
        ],
        "summary": "List imported wallets",
        "description": "List all imported external wallets for the current user.",
        "operationId": "list_imported_wallets_api_v1_wallet_imported_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OnchainWalletResponse"
                  },
                  "title": "Response List Imported Wallets Api V1 Wallet Imported Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/imported/{wallet_id}": {
      "delete": {
        "tags": [
          "Wallet"
        ],
        "summary": "Remove imported wallet",
        "description": "Remove an imported external wallet.",
        "operationId": "delete_imported_wallet_api_v1_wallet_imported__wallet_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "wallet_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Wallet Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/deploy_safe_msig": {
      "post": {
        "tags": [
          "Wallet"
        ],
        "summary": "Deploy Safe 2/2 multisig with passkey + backend EOA",
        "description": "Deploys a Safe v1.4.1 wallet with threshold 2/2. Owners are the backend EOA (from config) and a SafeWebAuthnSigner contract derived from the provided passkey (x, y) P-256 coordinates.",
        "operationId": "deploy_safe_msig_api_v1_wallet_deploy_safe_msig_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeploySafeMsigRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeploySafeMsigResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/paymaster_raw": {
      "post": {
        "tags": [
          "Wallet"
        ],
        "summary": "Push a fully-built UserOperation through EntryPoint.handleOps from the backend EOA",
        "description": "Submit a pre-built UserOperation through EntryPoint.handleOps from backend EOA.",
        "operationId": "paymaster_raw_api_v1_wallet_paymaster_raw_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "payment-id",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Payment-Id"
            }
          },
          {
            "name": "payment-memo",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Payment-Memo"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymasterRawRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymasterRawResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/execute_transaction": {
      "post": {
        "tags": [
          "Wallet"
        ],
        "summary": "Execute transaction",
        "description": "Execute a NEAR transaction.",
        "operationId": "execute_transaction_api_v1_wallet_execute_transaction_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransactionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/wallet/login": {
      "post": {
        "tags": [
          "Wallet"
        ],
        "summary": "Sign login message",
        "description": "Sign a login message for authentication.",
        "operationId": "login_api_v1_wallet_login_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          },
          {
            "name": "device-id",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Device-Id"
            }
          },
          {
            "name": "device-type",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "ios",
              "title": "Device-Type"
            }
          },
          {
            "name": "device-name",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "ios",
              "title": "Device-Name"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SignLoginRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/paymaster": {
      "post": {
        "tags": [
          "Wallet"
        ],
        "summary": "Paymaster",
        "description": "JSON-RPC endpoint.\n\n`eth_sendUserOperation` is handled by `paymaster_raw`.\nAll other methods are proxied to the Coinbase paymaster URL.",
        "operationId": "paymaster_api_v1_wallet_paymaster_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "payment-id",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Payment-Id"
            }
          },
          {
            "name": "payment-memo",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Payment-Memo"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/permissions": {
      "get": {
        "tags": [
          "Wallet"
        ],
        "summary": "Get Permissions",
        "description": "Sync spend permissions from chain and return active ones.",
        "operationId": "get_permissions_api_v1_wallet_permissions_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PermissionsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/passkeys": {
      "get": {
        "tags": [
          "Wallet"
        ],
        "summary": "List user passkeys",
        "description": "Return all active passkeys for the current user, synced with on-chain state.",
        "operationId": "list_passkeys_api_v1_wallet_passkeys_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PasskeyResponse"
                  },
                  "title": "Response List Passkeys Api V1 Wallet Passkeys Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/account_owner": {
      "post": {
        "tags": [
          "Wallet"
        ],
        "summary": "Add account owner extension",
        "description": "Without session: validates op, simulates, sends OTP, returns 403 with session_key. With session: verifies OTP session, executes on-chain, returns 200.",
        "operationId": "account_owner_api_v1_wallet_account_owner_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "auth-session-id",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Auth-Session-Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountOwnerRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountOwnerResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/rpc/{chain_id}": {
      "post": {
        "tags": [
          "Wallet"
        ],
        "summary": "Proxy",
        "operationId": "proxy_api_v1_wallet_rpc__chain_id__post",
        "parameters": [
          {
            "name": "chain_id",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OneClickChain"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/cards/pre-approve": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Pre-approve card issuance",
        "description": "Check Wirex KYC prerequisites and return a verification URL if all required user fields are present.",
        "operationId": "pre_approve_cards_api_v1_cards_pre_approve_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardsPreApproveResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/cards/register": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Register user for card services",
        "description": "Register user with card provider. Required before issuing cards.",
        "operationId": "register_for_cards_api_v1_cards_register_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardUserRegisterRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Register For Cards Api V1 Cards Register Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/cards/phone": {
      "put": {
        "tags": [
          "Cards"
        ],
        "summary": "Set phone number",
        "description": "Set user's phone number for verification.",
        "operationId": "set_phone_number_api_v1_cards_phone_put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetPhoneRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/cards/phone/otp": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Send phone OTP",
        "description": "Send SMS OTP to verify phone number.",
        "operationId": "send_phone_otp_api_v1_cards_phone_otp_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SendOtpResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/cards/phone/otp/verify": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Verify phone OTP",
        "description": "Verify SMS OTP code and finalize phone number on the provider side.",
        "operationId": "verify_phone_otp_api_v1_cards_phone_otp_verify_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyOtpRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/cards/kyc/link": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Get KYC verification link",
        "description": "Get link for user to complete KYC verification in browser.",
        "operationId": "get_kyc_link_api_v1_cards_kyc_link_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KycLinkResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/cards": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Issue new card",
        "description": "Issue a new virtual or physical card. User must complete KYC first.",
        "operationId": "issue_card_api_v1_cards_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/IssueCardRequest"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Data"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Get user's cards",
        "description": "Sync cards from Wirex and return the list.",
        "operationId": "get_cards_api_v1_cards_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardsListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/cards/{card_id}": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Get card by ID",
        "description": "Get single card details.",
        "operationId": "get_card_api_v1_cards__card_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "card_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Card Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Cards"
        ],
        "summary": "Delete card",
        "description": "Permanently delete (close) a card. This cannot be undone.",
        "operationId": "delete_card_api_v1_cards__card_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "card_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Card Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/cards/{card_id}/details": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Reveal full card details",
        "description": "Get full card number (PAN), CVV and expiry. Requires wallet signature for confirmation.",
        "operationId": "reveal_card_api_v1_cards__card_id__details_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "card_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Card Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardRevealRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardDetailsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/cards/{card_id}/freeze": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Freeze card",
        "description": "Temporarily freeze a card. Can be unfrozen later.",
        "operationId": "freeze_card_api_v1_cards__card_id__freeze_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "card_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Card Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/cards/{card_id}/unfreeze": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Unfreeze card",
        "description": "Unfreeze a previously frozen card.",
        "operationId": "unfreeze_card_api_v1_cards__card_id__unfreeze_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "card_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Card Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/cards/{card_id}/limit": {
      "put": {
        "tags": [
          "Cards"
        ],
        "summary": "Set card limit",
        "description": "Set daily spending limit for a card.",
        "operationId": "set_card_limit_api_v1_cards__card_id__limit_put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "card_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Card Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetCardLimitRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/cards/{card_id}/label": {
      "put": {
        "tags": [
          "Cards"
        ],
        "summary": "Set card label",
        "description": "Set or clear a user-defined label (nickname) for a card. Local-only, not sent to provider.",
        "operationId": "set_card_label_api_v1_cards__card_id__label_put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "card_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Card Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetCardLabelRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/cards/withdrawals/pending": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "List pending card withdrawals",
        "description": "Proxy to Wirex `GET /api/v1/withdrawal/requests` — returns pending withdrawal requests for the authenticated user's card wallet. See https://docs.wirexapp.com/docs/withdrawals#querying-pending-withdrawals",
        "operationId": "get_pending_withdrawals_api_v1_cards_withdrawals_pending_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PendingWithdrawalsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/contracts/invoices": {
      "post": {
        "tags": [
          "invoices"
        ],
        "summary": "Create invoice",
        "operationId": "create_invoice_api_v1_documents_contracts_invoices_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInvoiceRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "invoices"
        ],
        "summary": "List invoices for current user",
        "operationId": "list_invoices_api_v1_documents_contracts_invoices_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/contracts/invoices/uploaded": {
      "post": {
        "tags": [
          "invoices"
        ],
        "summary": "Create incoming invoice from uploaded document",
        "operationId": "create_uploaded_invoice_api_v1_documents_contracts_invoices_uploaded_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateUploadedInvoiceRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/contracts/invoices/share_link": {
      "post": {
        "tags": [
          "invoices"
        ],
        "summary": "Generate a share link for invoice creation",
        "operationId": "invoice_share_link_api_v1_documents_contracts_invoices_share_link_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceShareLinkResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/contracts/invoices/batch_invoicing": {
      "post": {
        "tags": [
          "invoices"
        ],
        "summary": "Generate invoices for multiple contracts",
        "operationId": "batch_invoicing_api_v1_documents_contracts_invoices_batch_invoicing_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchInvoicingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchInvoicingResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/contracts/invoices/{invoice_id}": {
      "get": {
        "tags": [
          "invoices"
        ],
        "summary": "Get invoice by ID",
        "operationId": "get_invoice_api_v1_documents_contracts_invoices__invoice_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "invoice_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Invoice Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "invoices"
        ],
        "summary": "Update invoice (set transaction_hash)",
        "operationId": "update_invoice_api_v1_documents_contracts_invoices__invoice_id__put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "invoice_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Invoice Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateInvoiceRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/contracts/{contract_id}/create-invoice": {
      "post": {
        "tags": [
          "invoices"
        ],
        "summary": "Create invoice from contract",
        "operationId": "create_invoice_from_contract_api_v1_documents_contracts__contract_id__create_invoice_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInvoiceFromContractRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/contracts/invoices/ai_parse": {
      "post": {
        "tags": [
          "invoices"
        ],
        "summary": "AI parse invoice PDF and return invoice preview",
        "operationId": "ai_parse_invoice_api_v1_documents_contracts_invoices_ai_parse_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "document_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Document Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicInvoiceResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/contracts": {
      "post": {
        "tags": [
          "contracts"
        ],
        "summary": "Create a new contract",
        "operationId": "create_contract_api_v1_documents_contracts_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateContractRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "contracts"
        ],
        "summary": "List contracts for current user",
        "operationId": "list_contracts_api_v1_documents_contracts_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/contracts/{contract_id}/attach-document": {
      "post": {
        "tags": [
          "contracts"
        ],
        "summary": "Attach a document to a contract",
        "operationId": "attach_document_api_v1_documents_contracts__contract_id__attach_document_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app__schemas__routers__invoices__contract__AttachDocumentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/contracts/templates": {
      "get": {
        "tags": [
          "contracts"
        ],
        "summary": "List fillable document templates and their fields",
        "operationId": "list_templates_api_v1_documents_contracts_templates_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplateListResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/contracts/generate_scope_prefill": {
      "post": {
        "tags": [
          "contracts"
        ],
        "summary": "Generate plain-text scope description from a role",
        "operationId": "generate_scope_prefill_api_v1_documents_contracts_generate_scope_prefill_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateScopePrefillRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerateScopePrefillResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/contracts/prepare_document": {
      "post": {
        "tags": [
          "contracts"
        ],
        "summary": "Persist prepared contract markdown as a document",
        "operationId": "prepare_contract_document_api_v1_documents_contracts_prepare_document_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PrepareContractDocumentRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PrepareContractDocumentResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/contracts/{contract_id}/preview_document": {
      "get": {
        "tags": [
          "contracts"
        ],
        "summary": "Preview contract document generated from a saved contract",
        "operationId": "preview_contract_document_api_v1_documents_contracts__contract_id__preview_document_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerateContractDocumentResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/contracts/{contract_id}/preview": {
      "get": {
        "tags": [
          "contracts"
        ],
        "summary": "Preview contract document generated from a saved contract",
        "operationId": "preview_contract_document_api_v1_documents_contracts__contract_id__preview_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerateContractDocumentResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/contracts/{contract_id}": {
      "get": {
        "tags": [
          "contracts"
        ],
        "summary": "Get contract by ID",
        "operationId": "get_contract_api_v1_documents_contracts__contract_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "contracts"
        ],
        "summary": "Update contract terms and schedule",
        "operationId": "update_contract_api_v1_documents_contracts__contract_id__patch",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateContractRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "contracts"
        ],
        "summary": "Delete contract",
        "operationId": "delete_contract_api_v1_documents_contracts__contract_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/contracts/{contract_id}/close": {
      "post": {
        "tags": [
          "contracts"
        ],
        "summary": "Close contract",
        "operationId": "close_contract_api_v1_documents_contracts__contract_id__close_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/contracts/{contract_id}/pause": {
      "post": {
        "tags": [
          "contracts"
        ],
        "summary": "Pause contract",
        "operationId": "pause_contract_api_v1_documents_contracts__contract_id__pause_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/contracts/{contract_id}/approve": {
      "post": {
        "tags": [
          "contracts"
        ],
        "summary": "Approve contract by client or contractor",
        "operationId": "approve_contract_api_v1_documents_contracts__contract_id__approve_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/ApproveContractRequest"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/contracts/{contract_id}/payment_methods": {
      "put": {
        "tags": [
          "contracts"
        ],
        "summary": "Set contractor payment methods for contract",
        "operationId": "update_contract_payment_methods_api_v1_documents_contracts__contract_id__payment_methods_put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateContractPaymentMethodsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/contracts/{contract_id}/label": {
      "patch": {
        "tags": [
          "contracts"
        ],
        "summary": "Update contract label",
        "operationId": "update_contract_label_api_v1_documents_contracts__contract_id__label_patch",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateContractLabelRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/contracts/{contract_id}/send-for-signing": {
      "post": {
        "tags": [
          "contracts"
        ],
        "summary": "Send contract for signing",
        "operationId": "send_for_signing_api_v1_documents_contracts__contract_id__send_for_signing_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/b2b/kyb/draft": {
      "put": {
        "tags": [
          "B2B",
          "kyb"
        ],
        "summary": "Save KYB draft",
        "description": "Save KYB draft data locally. Documents must be uploaded separately via POST /kyb/draft/documents.",
        "operationId": "save_kyb_draft_api_v1_b2b_kyb_draft_put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KybDraftRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "B2B",
          "kyb"
        ],
        "summary": "Get KYB draft",
        "description": "Get current KYB draft with all data and signed URLs for documents.",
        "operationId": "get_kyb_draft_api_v1_b2b_kyb_draft_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KybDraftResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/b2b/kyb/draft/documents": {
      "post": {
        "tags": [
          "B2B",
          "kyb"
        ],
        "summary": "Upload draft document (deprecated, use POST /documents/upload)",
        "description": "Backward-compatible proxy to POST /documents/upload.",
        "operationId": "upload_draft_document_api_v1_b2b_kyb_draft_documents_post",
        "deprecated": true,
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KybDocumentUpload"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentDraftInfo"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/b2b/kyb/submit": {
      "post": {
        "tags": [
          "B2B",
          "kyb"
        ],
        "summary": "Submit KYB",
        "description": "Submit all KYB data to a provider. Use provider=align for Align, provider=swipelux (default) for Swipelux.",
        "operationId": "submit_kyb_api_v1_b2b_kyb_submit_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "provider",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/FiatProvider",
              "default": "swipelux"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KybSubmitResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/b2b/kyb/request": {
      "post": {
        "tags": [
          "B2B",
          "kyb"
        ],
        "summary": "Request KYB for a provider",
        "description": "Request KYB verification for a provider",
        "operationId": "request_kyb_api_v1_b2b_kyb_request_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Request Kyb Api V1 B2B Kyb Request Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/b2b/documents": {
      "get": {
        "tags": [
          "B2B",
          "documents"
        ],
        "summary": "List uploaded documents (deprecated, use GET /documents)",
        "description": "Backward-compatible proxy to GET /documents.",
        "operationId": "list_uploaded_documents_legacy_api_v1_b2b_documents_get",
        "deprecated": true,
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "doc_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Document filter type, e.g. 'uploaded'",
              "default": "uploaded",
              "title": "Doc Type"
            },
            "description": "Document filter type, e.g. 'uploaded'"
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UploadedDocumentListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/incorporate/prices": {
      "get": {
        "tags": [
          "Incorporate"
        ],
        "summary": "Get incorporation service prices",
        "description": "Return available services and prices by jurisdiction.",
        "operationId": "get_prices_api_v1_incorporate_prices_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Get Prices Api V1 Incorporate Prices Get"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/incorporate/apply": {
      "post": {
        "tags": [
          "Incorporate"
        ],
        "summary": "Apply for incorporation",
        "description": "Apply for company incorporation.\n\nValidates that all shareholders have ownership_percentage filled\nand total equals 100%. Creates an invoice for incorporation services,\nsets KYC status to 'incorporating' and sends Slack notification.",
        "operationId": "apply_incorporate_api_v1_incorporate_apply_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplyIncorporateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Apply Incorporate Api V1 Incorporate Apply Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/share_kyb_link": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Share KYB link",
        "description": "Send a KYB verification link to the specified email.",
        "operationId": "share_kyb_link_api_v1_user_share_kyb_link_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ShareKybLinkRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Share Kyb Link Api V1 User Share Kyb Link Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/download/{document_id}": {
      "get": {
        "tags": [
          "documents",
          "documents"
        ],
        "summary": "Download a document via signed token",
        "description": "Verify download token, log the event, and redirect to a Supabase signed URL.",
        "operationId": "download_document_api_v1_documents_download__document_id__get",
        "parameters": [
          {
            "name": "document_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Document Id"
            }
          },
          {
            "name": "key",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/upload": {
      "post": {
        "tags": [
          "documents"
        ],
        "summary": "Upload a document",
        "description": "Upload a document to storage. Returns document_id for referencing.",
        "operationId": "upload_document_api_v1_documents_upload_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KybDocumentUpload"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentDraftInfo"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents": {
      "get": {
        "tags": [
          "documents"
        ],
        "summary": "List uploaded documents",
        "description": "List user-uploaded documents by filter type.",
        "operationId": "list_uploaded_documents_api_v1_documents_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "doc_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Document filter type, e.g. 'uploaded'",
              "default": "uploaded",
              "title": "Doc Type"
            },
            "description": "Document filter type, e.g. 'uploaded'"
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UploadedDocumentListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/{document_id}/content": {
      "put": {
        "tags": [
          "documents",
          "documents"
        ],
        "summary": "Update document extracted content",
        "description": "Validate and save extracted content for a document.\n\nContent is validated against the Pydantic model for the document's type/category.",
        "operationId": "update_document_content_api_v1_documents__document_id__content_put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "document_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Document Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "title": "Content"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentDraftInfo"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/create": {
      "post": {
        "tags": [
          "documents"
        ],
        "summary": "Create a document for e-signing via Firma",
        "operationId": "create_signing_document_api_v1_documents_create_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FirmaCreateDocumentRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FirmaCreateDocumentResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/export": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "summary": "Export transactions",
        "description": "Export transactions as CSV or XLSX file.",
        "operationId": "export_transactions_api_v1_transactions_export_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/TransactionExportFormat",
              "default": "csv"
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated transaction types",
              "title": "Type"
            },
            "description": "Comma-separated transaction types"
          },
          {
            "name": "incomeOnly",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Incomeonly"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated tags",
              "title": "Tag"
            },
            "description": "Comma-separated tags"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated unified statuses",
              "title": "Status"
            },
            "description": "Comma-separated unified statuses"
          },
          {
            "name": "contactId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated contact UUIDs",
              "title": "Contactid"
            },
            "description": "Comma-separated contact UUIDs"
          },
          {
            "name": "bank_account_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated bank account UUIDs",
              "title": "Bank Account Id"
            },
            "description": "Comma-separated bank account UUIDs"
          },
          {
            "name": "bankAccountId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated bank account UUIDs",
              "title": "Bankaccountid"
            },
            "description": "Comma-separated bank account UUIDs"
          },
          {
            "name": "cardId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated Card UUIDs",
              "title": "Cardid"
            },
            "description": "Comma-separated Card UUIDs"
          },
          {
            "name": "fromDate",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Fromdate"
            }
          },
          {
            "name": "toDate",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Todate"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Free-text search across description, merchant, tag, hash/wallet, contact name, counterparty user, invoice contractor, IBAN, and exact amount. Min 2 chars; values shorter are ignored.",
              "title": "Q"
            },
            "description": "Free-text search across description, merchant, tag, hash/wallet, contact name, counterparty user, invoice contractor, IBAN, and exact amount. Min 2 chars; values shorter are ignored."
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "summary": "Get user transactions",
        "description": "Get latest user transactions sorted by time.",
        "operationId": "get_transactions_api_v1_transactions_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/TransactionSortBy",
              "default": "date"
            }
          },
          {
            "name": "sortOrder",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/SortOrder",
              "default": "desc"
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated transaction types",
              "title": "Type"
            },
            "description": "Comma-separated transaction types"
          },
          {
            "name": "incomeOnly",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Incomeonly"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated tags",
              "title": "Tag"
            },
            "description": "Comma-separated tags"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated unified statuses",
              "title": "Status"
            },
            "description": "Comma-separated unified statuses"
          },
          {
            "name": "contactId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated contact UUIDs",
              "title": "Contactid"
            },
            "description": "Comma-separated contact UUIDs"
          },
          {
            "name": "bank_account_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated bank account UUIDs",
              "title": "Bank Account Id"
            },
            "description": "Comma-separated bank account UUIDs"
          },
          {
            "name": "bankAccountId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated bank account UUIDs",
              "title": "Bankaccountid"
            },
            "description": "Comma-separated bank account UUIDs"
          },
          {
            "name": "cardId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated Card UUIDs",
              "title": "Cardid"
            },
            "description": "Comma-separated Card UUIDs"
          },
          {
            "name": "fromDate",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Fromdate"
            }
          },
          {
            "name": "toDate",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Todate"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Free-text search across description, merchant, tag, hash/wallet, contact name, counterparty user, invoice contractor, IBAN, and exact amount. Min 2 chars; values shorter are ignored.",
              "title": "Q"
            },
            "description": "Free-text search across description, merchant, tag, hash/wallet, contact name, counterparty user, invoice contractor, IBAN, and exact amount. Min 2 chars; values shorter are ignored."
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnifiedTransactionListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/breakdown": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "summary": "Transaction volume breakdown",
        "description": "Volume + count grouped by tag or type, with the same filters as the list.",
        "operationId": "get_transactions_breakdown_api_v1_transactions_breakdown_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "groupBy",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/TransactionGroupBy",
              "description": "Group by tag or type"
            },
            "description": "Group by tag or type"
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated transaction types",
              "title": "Type"
            },
            "description": "Comma-separated transaction types"
          },
          {
            "name": "incomeOnly",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Incomeonly"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated tags",
              "title": "Tag"
            },
            "description": "Comma-separated tags"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated unified statuses",
              "title": "Status"
            },
            "description": "Comma-separated unified statuses"
          },
          {
            "name": "contactId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated contact UUIDs",
              "title": "Contactid"
            },
            "description": "Comma-separated contact UUIDs"
          },
          {
            "name": "bank_account_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated bank account UUIDs",
              "title": "Bank Account Id"
            },
            "description": "Comma-separated bank account UUIDs"
          },
          {
            "name": "bankAccountId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated bank account UUIDs",
              "title": "Bankaccountid"
            },
            "description": "Comma-separated bank account UUIDs"
          },
          {
            "name": "cardId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated Card UUIDs",
              "title": "Cardid"
            },
            "description": "Comma-separated Card UUIDs"
          },
          {
            "name": "fromDate",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Fromdate"
            }
          },
          {
            "name": "toDate",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Todate"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Free-text search across description, merchant, tag, hash/wallet, contact name, counterparty user, invoice contractor, IBAN, and exact amount. Min 2 chars; values shorter are ignored.",
              "title": "Q"
            },
            "description": "Free-text search across description, merchant, tag, hash/wallet, contact name, counterparty user, invoice contractor, IBAN, and exact amount. Min 2 chars; values shorter are ignored."
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionBreakdownResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/breakdown/series": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "summary": "Transaction volume breakdown over time",
        "description": "Volume + count grouped by tag or type, split into time buckets across the fromDate..toDate range. Granularity is auto-picked: >6 months → month, >30 days → week, otherwise day. Empty periods are returned as zero-filled buckets so the frontend gets a complete x-axis. Same filter set as /transactions and /transactions/breakdown. `fromDate` and `toDate` are required.",
        "operationId": "get_transactions_breakdown_series_api_v1_transactions_breakdown_series_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "groupBy",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/TransactionGroupBy",
              "description": "Group by tag or type"
            },
            "description": "Group by tag or type"
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated transaction types",
              "title": "Type"
            },
            "description": "Comma-separated transaction types"
          },
          {
            "name": "incomeOnly",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Incomeonly"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated tags",
              "title": "Tag"
            },
            "description": "Comma-separated tags"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated unified statuses",
              "title": "Status"
            },
            "description": "Comma-separated unified statuses"
          },
          {
            "name": "contactId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated contact UUIDs",
              "title": "Contactid"
            },
            "description": "Comma-separated contact UUIDs"
          },
          {
            "name": "bank_account_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated bank account UUIDs",
              "title": "Bank Account Id"
            },
            "description": "Comma-separated bank account UUIDs"
          },
          {
            "name": "bankAccountId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated bank account UUIDs",
              "title": "Bankaccountid"
            },
            "description": "Comma-separated bank account UUIDs"
          },
          {
            "name": "cardId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated Card UUIDs",
              "title": "Cardid"
            },
            "description": "Comma-separated Card UUIDs"
          },
          {
            "name": "fromDate",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Fromdate"
            }
          },
          {
            "name": "toDate",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Todate"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Free-text search across description, merchant, tag, hash/wallet, contact name, counterparty user, invoice contractor, IBAN, and exact amount. Min 2 chars; values shorter are ignored.",
              "title": "Q"
            },
            "description": "Free-text search across description, merchant, tag, hash/wallet, contact name, counterparty user, invoice contractor, IBAN, and exact amount. Min 2 chars; values shorter are ignored."
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionBreakdownSeriesResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/{transaction_id}/details": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "summary": "Get transaction details",
        "description": "Authenticated owners get the full UX (status auto-sync, document download links, crypto→internal repair). Unauthenticated callers must pass `?key=` with a share key issued by `POST /transactions/{id}/share`. Without auth and without a valid key the endpoint returns 401.",
        "operationId": "get_transaction_details_endpoint_api_v1_transactions__transaction_id__details_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "transaction_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Transaction Id"
            }
          },
          {
            "name": "key",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Key"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionDetailResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/{transaction_id}/share": {
      "post": {
        "tags": [
          "Transactions"
        ],
        "summary": "Create a share link for a transaction",
        "description": "Owner-only. Creates a temp access key scoped to this transaction_id. Pass the raw key back to `GET /transactions/{id}/details?key=<key>` to fetch the receipt without auth.",
        "operationId": "create_transaction_share_link_api_v1_transactions__transaction_id__share_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "transaction_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Transaction Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionShareLinkResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/{transaction_id}/tag": {
      "post": {
        "tags": [
          "Transactions"
        ],
        "summary": "Set transaction tag",
        "description": "Set or clear a tag on a transaction.",
        "operationId": "set_transaction_tag_api_v1_transactions__transaction_id__tag_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "transaction_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Transaction Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagUpdateResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/{transaction_id}/memo": {
      "put": {
        "tags": [
          "Transactions"
        ],
        "summary": "Set transaction memo",
        "description": "Set or clear a memo (description) on a transaction.",
        "operationId": "set_transaction_memo_api_v1_transactions__transaction_id__memo_put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "transaction_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Transaction Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MemoUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemoUpdateResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/{transaction_id}/attachments": {
      "post": {
        "tags": [
          "Transactions"
        ],
        "summary": "Attach a document to a transaction",
        "description": "Append an already-uploaded document (by id) to the transaction's attachments. The document must belong to the same user. Idempotent — re-attaching an existing id is a no-op. Returns the full updated list with signed download links.",
        "operationId": "attach_document_to_transaction_api_v1_transactions__transaction_id__attachments_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "transaction_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Transaction Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app__schemas__routers__transactions__transaction__AttachDocumentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TransactionAttachment"
                  },
                  "title": "Response Attach Document To Transaction Api V1 Transactions  Transaction Id  Attachments Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/mcp/api_key": {
      "post": {
        "tags": [
          "mcp"
        ],
        "summary": "Create a new MCP API key",
        "operationId": "create_api_key_api_v1_mcp_api_key_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "user-agent",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "User-Agent"
            }
          },
          {
            "name": "device-name",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Device-Name"
            }
          },
          {
            "name": "cf-ipcountry",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cf-Ipcountry"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app__schemas__routers__security__mcp__ApiKeyCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app__schemas__routers__security__mcp__ApiKeyResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "mcp"
        ],
        "summary": "List all MCP API keys",
        "operationId": "list_api_keys_api_v1_mcp_api_key_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiKeyListResponse"
                  },
                  "title": "Response List Api Keys Api V1 Mcp Api Key Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/mcp/api_key/{key_id}": {
      "delete": {
        "tags": [
          "mcp"
        ],
        "summary": "Delete an MCP API key",
        "operationId": "delete_api_key_api_v1_mcp_api_key__key_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "key_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Key Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Delete Api Key Api V1 Mcp Api Key  Key Id  Delete"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/mcp/get_balance": {
      "get": {
        "tags": [
          "mcp"
        ],
        "summary": "Get USDC balance on Base",
        "operationId": "get_mcp_balance_api_v1_mcp_get_balance_get",
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BalanceResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/mcp/resolve_address": {
      "get": {
        "tags": [
          "mcp"
        ],
        "summary": "Resolve smart wallet address by email",
        "description": "Resolve or create a smart wallet address for the given email.\n\nIf the user has no wallet, pregenerates a Privy embedded wallet\nand deploys a smart wallet with it as owner.",
        "operationId": "resolve_address_api_v1_mcp_resolve_address_get",
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Recipient email",
              "title": "Email"
            },
            "description": "Recipient email"
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Resolve Address Api V1 Mcp Resolve Address Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/mcp/transfer": {
      "post": {
        "tags": [
          "mcp"
        ],
        "summary": "Transfer USDC through MCP using invoice/contact/quote context",
        "description": "Create and submit the UserOperation inside the backend.\n\nThe request body is flat typed data, e.g. {\"invoiceId\": \"...\", \"memo\": \"...\"}.",
        "operationId": "transfer_api_v1_mcp_transfer_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency-Key"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/McpTransferContext"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransferResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/mcp/transfer_to_user": {
      "post": {
        "tags": [
          "mcp"
        ],
        "summary": "Transfer USDC to user via spend permission",
        "operationId": "transfer_to_user_api_v1_mcp_transfer_to_user_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Idempotency-Key"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransferResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/mcp/transfers": {
      "get": {
        "tags": [
          "mcp"
        ],
        "summary": "List MCP transfers for authenticated user",
        "operationId": "list_transfers_api_v1_mcp_transfers_get",
        "parameters": [
          {
            "name": "idempotency_key",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency Key"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/McpTransactionResponse"
                  },
                  "title": "Response List Transfers Api V1 Mcp Transfers Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/time": {
      "get": {
        "tags": [
          "Public"
        ],
        "summary": "Server Time",
        "operationId": "server_time_api_v1_public_time_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Server Time Api V1 Public Time Get"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/waitlist": {
      "post": {
        "tags": [
          "Public"
        ],
        "summary": "Join Waitlist",
        "operationId": "join_waitlist_api_v1_public_waitlist_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WaitlistRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Join Waitlist Api V1 Public Waitlist Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/rates/{currency}": {
      "get": {
        "tags": [
          "Public"
        ],
        "summary": "Get public FX rates",
        "operationId": "get_public_rate_api_v1_public_rates__currency__get",
        "parameters": [
          {
            "name": "currency",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Currency"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RateResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/invoices/user_details": {
      "get": {
        "tags": [
          "Public"
        ],
        "summary": "Get contractor details by invoice share key",
        "description": "Return the user details of the share-link owner so a third party can invoice them.",
        "operationId": "invoice_user_details_api_v1_public_invoices_user_details_get",
        "parameters": [
          {
            "name": "key",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceUserDetailsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/invoices/{invoice_id}": {
      "get": {
        "tags": [
          "Public"
        ],
        "summary": "Get Public Invoice",
        "description": "Public invoice details — no auth required.",
        "operationId": "get_public_invoice_api_v1_public_invoices__invoice_id__get",
        "parameters": [
          {
            "name": "invoice_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Invoice Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicInvoiceResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/products/{product_id}": {
      "get": {
        "tags": [
          "Public"
        ],
        "summary": "Get Public Product",
        "description": "Public product details — no auth required.",
        "operationId": "get_public_product_api_v1_public_products__product_id__get",
        "parameters": [
          {
            "name": "product_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Product Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicProductResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/products/{product_id}/pay": {
      "post": {
        "tags": [
          "Public"
        ],
        "summary": "Pay Product",
        "description": "Create one_click quote for product payment. No auth required.",
        "operationId": "pay_product_api_v1_public_products__product_id__pay_post",
        "parameters": [
          {
            "name": "product_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Product Id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayProductRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UniversalQuoteResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/public/{payment_id}/submit": {
      "post": {
        "tags": [
          "Public"
        ],
        "summary": "Submit Product Deposit",
        "description": "Submit deposit tx_hash to speed up settlement. No auth required.",
        "operationId": "submit_product_deposit_api_v1_public__payment_id__submit_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "payment_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Payment Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitDepositRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentTransactionResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/chat/{chat_type}": {
      "post": {
        "tags": [
          "Chat"
        ],
        "summary": "Create or get a chat",
        "description": "Get or create the internal chat of the given type for the current user.\n\nOptionally sends the first message.",
        "operationId": "create_chat_api_v1_chat__chat_type__post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "chat_type",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/UserChatType"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChatCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app__schemas__routers__user__user__ChatResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/chat/{chat_type}/messages": {
      "get": {
        "tags": [
          "Chat"
        ],
        "summary": "Get chat messages",
        "description": "Return all messages in the chat.",
        "operationId": "get_chat_messages_api_v1_chat__chat_type__messages_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "chat_type",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/UserChatType"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 1000,
              "minimum": 1,
              "default": 500,
              "title": "Limit"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ChatMessageResponse"
                  },
                  "title": "Response Get Chat Messages Api V1 Chat  Chat Type  Messages Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Chat"
        ],
        "summary": "Send a chat message",
        "description": "Send a message in the chat.",
        "operationId": "send_chat_message_api_v1_chat__chat_type__messages_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "chat_type",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/UserChatType"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChatMessageRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChatMessageResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/chat/{chat_type}/read": {
      "post": {
        "tags": [
          "Chat"
        ],
        "summary": "Mark chat as read by the user",
        "operationId": "mark_chat_read_api_v1_chat__chat_type__read_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "chat_type",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/UserChatType"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/chat/{chat_type}/stream": {
      "get": {
        "tags": [
          "Chat"
        ],
        "summary": "SSE stream for chat messages",
        "description": "Server-Sent Events stream for real-time chat messages.",
        "operationId": "stream_chat_api_v1_chat__chat_type__stream_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "chat_type",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/UserChatType"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/2fa/status": {
      "get": {
        "tags": [
          "2FA"
        ],
        "summary": "Get Totp Status",
        "description": "Check if 2FA is enabled for the current user.",
        "operationId": "get_totp_status_api_v1_user_2fa_status_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TotpStatusResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/user/2fa/setup": {
      "post": {
        "tags": [
          "2FA"
        ],
        "summary": "Setup Totp",
        "description": "Generate TOTP secret and provisioning URI for QR code.",
        "operationId": "setup_totp_api_v1_user_2fa_setup_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TotpSetupResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/user/2fa/activate": {
      "post": {
        "tags": [
          "2FA"
        ],
        "summary": "Activate Totp",
        "description": "Verify first TOTP code and activate 2FA. Returns recovery codes.",
        "operationId": "activate_totp_api_v1_user_2fa_activate_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TotpVerifyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TotpActivateResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/user/2fa": {
      "delete": {
        "tags": [
          "2FA"
        ],
        "summary": "Disable Totp",
        "description": "Disable 2FA. Requires current TOTP code.",
        "operationId": "disable_totp_api_v1_user_2fa_delete",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TotpDisableRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Disable Totp Api V1 User 2Fa Delete"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/user/2fa/recovery-codes": {
      "post": {
        "tags": [
          "2FA"
        ],
        "summary": "Regenerate Recovery Codes",
        "description": "Regenerate recovery codes. Requires current TOTP code.",
        "operationId": "regenerate_recovery_codes_api_v1_user_2fa_recovery_codes_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TotpVerifyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TotpActivateResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/team/invite": {
      "post": {
        "tags": [
          "team"
        ],
        "summary": "Send invite",
        "description": "Send an invite to the specified email and track the corresponding analytics event.",
        "operationId": "send_team_invite_api_v1_team_invite_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InviteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Send Team Invite Api V1 Team Invite Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/team/spaces": {
      "get": {
        "tags": [
          "team"
        ],
        "summary": "List Available Spaces",
        "description": "List team spaces where the current user is a member.",
        "operationId": "list_available_spaces_api_v1_team_spaces_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AvailableSpacesResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/team": {
      "get": {
        "tags": [
          "team"
        ],
        "summary": "List Team",
        "description": "List team members for the current user's account.",
        "operationId": "list_team_api_v1_team_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamListResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "team"
        ],
        "summary": "Add Team Member",
        "description": "Add a user to your team by email.",
        "operationId": "add_team_member_api_v1_team_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "user-agent",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "User-Agent"
            }
          },
          {
            "name": "device-name",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Device-Name"
            }
          },
          {
            "name": "cf-ipcountry",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cf-Ipcountry"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TeamAddRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamMemberResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/team/{user_id}": {
      "delete": {
        "tags": [
          "team"
        ],
        "summary": "Remove Team Member",
        "description": "Remove a user from your team.",
        "operationId": "remove_team_member_api_v1_team__user_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "User Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/invite": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Send invite",
        "description": "Legacy mapping for team invites. Prefer POST /team/invite.",
        "operationId": "send_legacy_user_invite_api_v1_user_invite_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InviteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Send Legacy User Invite Api V1 User Invite Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/contact/bank/validate": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Prevalidate bank contact details",
        "description": "Validate bank identifiers before creating a contact.",
        "operationId": "validate_bank_contact_api_v1_user_contact_bank_validate_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BankValidationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankValidationResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/contacts": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Get user contacts",
        "description": "Get all contacts for the current user.",
        "operationId": "get_contacts_api_v1_user_contacts_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 500,
              "minimum": 1,
              "default": 100,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/contact/preview": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Preview contact by wallet or email",
        "description": "Look up a HEVN user by wallet address or email and return a preview.",
        "operationId": "preview_contact_api_v1_user_contact_preview_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "EVM wallet address",
              "title": "Wallet"
            },
            "description": "EVM wallet address"
          },
          {
            "name": "email",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Email address",
              "title": "Email"
            },
            "description": "Email address"
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactPreviewResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/contact": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Create contact",
        "description": "Create a new contact for the current user.",
        "operationId": "create_contact_api_v1_user_contact_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/contacts/{contact_id}": {
      "patch": {
        "tags": [
          "User"
        ],
        "summary": "Update contact name",
        "description": "Update safe contact metadata.",
        "operationId": "update_contact_api_v1_user_contacts__contact_id__patch",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contact_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contact Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "User"
        ],
        "summary": "Delete contact",
        "description": "Delete a contact.",
        "operationId": "delete_contact_api_v1_user_contacts__contact_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contact_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contact Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/invite_code": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Get invite code for current user",
        "description": "Get the current user's invite code, creating one if needed.",
        "operationId": "get_invite_code_api_v1_user_invite_code_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InviteCodeResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/invited": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Get users invited by current user",
        "description": "Return all users who joined via the current user's invite code.",
        "operationId": "get_invited_users_api_v1_user_invited_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvitedListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/rewards": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Get referral rewards earned by current user",
        "description": "Return list of referral rewards (KYB and volume bonuses) for the current user.",
        "operationId": "get_rewards_api_v1_user_rewards_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 500,
              "minimum": 1,
              "default": 100,
              "title": "Limit"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Reserved for future pagination",
              "title": "Cursor"
            },
            "description": "Reserved for future pagination"
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RewardsListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/tee/attestate_jwt": {
      "post": {
        "tags": [
          "tee"
        ],
        "summary": "Attestate Jwt",
        "description": "Google JWT attestation via Nitro Enclave.\n\nClient encrypts {google_jwt, msg, receiver_id} with enclave's Curve25519 key,\nsends the ciphertext here. Enclave decrypts, verifies JWT, and returns a signed attestation.",
        "operationId": "attestate_jwt_api_v1_auth_tee_attestate_jwt_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app__routers__security__tee__AttestateJwtRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app__routers__security__tee__AttestateJwtResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/tee/encryption_key": {
      "get": {
        "tags": [
          "tee"
        ],
        "summary": "Get Encryption Key",
        "description": "Get the enclave's Curve25519 encryption public key for E2E encrypted requests.",
        "operationId": "get_encryption_key_api_v1_auth_tee_encryption_key_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EncryptionKeyResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/tee/google_certs": {
      "get": {
        "tags": [
          "tee"
        ],
        "summary": "Get Google Certs",
        "description": "Get Google JWKS certs signed by enclave — allows clients to verify enclave integrity.",
        "operationId": "get_google_certs_api_v1_auth_tee_google_certs_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoogleCertsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tee/public_key": {
      "get": {
        "tags": [
          "tee-local"
        ],
        "summary": "Get Public Key",
        "description": "Get the signing public key (ed25519:base58).",
        "operationId": "get_public_key_api_v1_tee_public_key_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicKeyResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tee/attestate_jwt": {
      "post": {
        "tags": [
          "tee-local"
        ],
        "summary": "Attestate Jwt",
        "description": "Verify Google JWT and return signed attestation.\n\nSame logic as enclave GOOGLE_ATTESTATION handler, but accepts plaintext\n(no NaCl Box encryption) and signs with near_wallet key.",
        "operationId": "attestate_jwt_api_v1_tee_attestate_jwt_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app__routers__security__tee_local__AttestateJwtRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app__routers__security__tee_local__AttestateJwtResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tee/near_call": {
      "post": {
        "tags": [
          "tee-local"
        ],
        "summary": "Near Call",
        "description": "Execute w_execute_signed transaction using near_wallet key.\n\nAccepts {msg, publicKey, proof} from the frontend, extracts receiver_id\n(wallet address) from msg.signer_id.",
        "operationId": "near_call_api_v1_tee_near_call_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NearCallRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NearCallResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/xero/connect": {
      "get": {
        "tags": [
          "Xero"
        ],
        "summary": "Xero Connect",
        "description": "Start Xero OAuth flow. Returns redirect to Xero login.",
        "operationId": "xero_connect_api_v1_xero_connect_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/xero/callback": {
      "get": {
        "tags": [
          "Xero"
        ],
        "summary": "Xero Callback",
        "description": "OAuth callback from Xero. Exchanges code for tokens.\n\nNote: This endpoint is called by Xero redirect, so we look up the user\nfrom the stored OAuth state rather than requiring a JWT header.",
        "operationId": "xero_callback_api_v1_xero_callback_get",
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Code"
            }
          },
          {
            "name": "state",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "State"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/xero/disconnect": {
      "delete": {
        "tags": [
          "Xero"
        ],
        "summary": "Xero Disconnect",
        "description": "Disconnect Xero integration.",
        "operationId": "xero_disconnect_api_v1_xero_disconnect_delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Xero Disconnect Api V1 Xero Disconnect Delete"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/xero/status": {
      "get": {
        "tags": [
          "Xero"
        ],
        "summary": "Xero Status",
        "description": "Check Xero connection status.",
        "operationId": "xero_status_api_v1_xero_status_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/XeroStatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/xero/export": {
      "post": {
        "tags": [
          "Xero"
        ],
        "summary": "Xero Export",
        "description": "Export transactions to Xero as Bank Transactions.",
        "operationId": "xero_export_api_v1_xero_export_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/XeroExportRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/XeroExportResult"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/merchant/products": {
      "post": {
        "tags": [
          "Merchant"
        ],
        "summary": "Create Product",
        "operationId": "create_product_api_v1_merchant_products_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Merchant"
        ],
        "summary": "List Products",
        "operationId": "list_products_api_v1_merchant_products_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "active_only",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": true,
              "title": "Active Only"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductResponse"
                  },
                  "title": "Response List Products Api V1 Merchant Products Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/merchant/products/{product_id}": {
      "get": {
        "tags": [
          "Merchant"
        ],
        "summary": "Get Product",
        "operationId": "get_product_api_v1_merchant_products__product_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "product_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Product Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Merchant"
        ],
        "summary": "Update Product",
        "operationId": "update_product_api_v1_merchant_products__product_id__patch",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "product_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Product Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Merchant"
        ],
        "summary": "Deactivate Product",
        "operationId": "deactivate_product_api_v1_merchant_products__product_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "product_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Product Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/merchant/products/{product_id}/payments": {
      "get": {
        "tags": [
          "Merchant"
        ],
        "summary": "List Product Payments",
        "operationId": "list_product_payments_api_v1_merchant_products__product_id__payments_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "product_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Product Id"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PaymentTransactionResponse"
                  },
                  "title": "Response List Product Payments Api V1 Merchant Products  Product Id  Payments Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/apps": {
      "post": {
        "tags": [
          "apps"
        ],
        "summary": "Create a new API app",
        "operationId": "create_app_api_v1_apps_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiAppCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiAppResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "apps"
        ],
        "summary": "List user's API apps",
        "operationId": "list_apps_api_v1_apps_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiAppResponse"
                  },
                  "title": "Response List Apps Api V1 Apps Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/apps/{app_id}": {
      "get": {
        "tags": [
          "apps"
        ],
        "summary": "App details: keys + matching spend permissions",
        "operationId": "get_app_api_v1_apps__app_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "App Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiAppDetailResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "apps"
        ],
        "summary": "Delete an API app (soft-delete; cascades to all keys)",
        "operationId": "delete_app_api_v1_apps__app_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "App Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Delete App Api V1 Apps  App Id  Delete"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/apps/{app_id}/access": {
      "put": {
        "tags": [
          "apps"
        ],
        "summary": "Replace an app's access (cards/banks/scope) — owner only",
        "operationId": "update_app_access_api_v1_apps__app_id__access_put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "App Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiAppAccess"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiAppResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/apps/{app_id}/keys": {
      "post": {
        "tags": [
          "apps"
        ],
        "summary": "Issue a new API key under the app (raw key returned ONCE)",
        "operationId": "create_app_key_api_v1_apps__app_id__keys_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "App Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app__schemas__routers__apps__ApiKeyCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app__schemas__routers__apps__ApiKeyResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/apps/{app_id}/keys/{key_id}": {
      "delete": {
        "tags": [
          "apps"
        ],
        "summary": "Revoke an API key from the app (soft-delete)",
        "operationId": "delete_app_key_api_v1_apps__app_id__keys__key_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "App Id"
            }
          },
          {
            "name": "key_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Key Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Delete App Key Api V1 Apps  App Id  Keys  Key Id  Delete"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/apps/{app_id}/activity": {
      "get": {
        "tags": [
          "apps"
        ],
        "summary": "Recent notifications produced by this app's API keys",
        "operationId": "get_app_activity_api_v1_apps__app_id__activity_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "App Id"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/apps/{app_id}/transfer": {
      "post": {
        "tags": [
          "apps",
          "apps-transfer"
        ],
        "summary": "Legacy app-id transfer route",
        "description": "Resolve recipient + amount from context, then spend USDC from the\napp's smart wallet via the user's SpendPermission.\n\nMirrors the body of ``POST /mcp/transfer``; the only differences are\nthe auth model (new ``api_keys`` instead of ``mcp_api_keys``) and the\nspender wallet (shared ``app.smart_wallet_address`` instead of per-key).\n\nDeprecated for HEVN CLI usage: current CLI calls POST /apps/transfer and the backend resolves the app from the API key.",
        "operationId": "transfer_api_v1_apps__app_id__transfer_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "App Id"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency-Key"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AppTransferContext"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AppTransferResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/api/v1/user/devices": {
      "get": {
        "tags": [
          "Devices"
        ],
        "summary": "List user's devices",
        "description": "Get all devices associated with the authenticated user's account.",
        "operationId": "list_devices_package_alias_api_v1_user_devices_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DeviceResponse"
                  },
                  "title": "Response List Devices Package Alias Api V1 User Devices Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/device": {
      "put": {
        "tags": [
          "Devices"
        ],
        "summary": "Set push notification token",
        "description": "Set or update the push notification token for the current device. Pass an empty pushToken to unsubscribe the device. Web subscriptions arrive as JSON-stringified PushSubscription; native tokens (APNs/FCM) are short strings.",
        "operationId": "update_push_token_package_alias_api_v1_user_device_put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "device-id",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Device-Id"
            }
          },
          {
            "name": "device-type",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "ios",
              "title": "Device-Type"
            }
          },
          {
            "name": "device-name",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": "ios",
              "title": "Device-Name"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PushTokenRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/activity": {
      "get": {
        "tags": [
          "Activity"
        ],
        "summary": "Recent account activity",
        "description": "Return recent notifications attributed to the current user. Each item carries its type, the originating device label, and the client IP captured at trigger time (when available).",
        "operationId": "get_activity_package_alias_api_v1_auth_activity_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/bank/{rail}/pre-approve": {
      "post": {
        "tags": [
          "Banks",
          "banks"
        ],
        "summary": "Pre-approve a bank rail",
        "description": "Read-only KYC info for the rail. Does not mutate Bank rows.",
        "operationId": "pre_approve_bank_package_alias_api_v1_accounts_bank__rail__pre_approve_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "rail",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/BankRail"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankPreApproveResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/bank/{rail}/activate": {
      "post": {
        "tags": [
          "Banks",
          "banks"
        ],
        "summary": "Activate a bank rail",
        "description": "Create or upsert a Bank row for the given rail. Idempotent.",
        "operationId": "activate_bank_package_alias_api_v1_accounts_bank__rail__activate_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "rail",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/BankRail"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/banks/payin/quote": {
      "post": {
        "tags": [
          "Banks",
          "banks"
        ],
        "summary": "Get a pooled bank payin quote",
        "description": "Create a Swipelux quote for paying into the user's custodial wallet via a pooled bank rail.",
        "operationId": "create_bank_payin_quote_package_alias_api_v1_accounts_banks_payin_quote_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BankPayinQuoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankPayinQuoteResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/banks/payin/quote/submit": {
      "post": {
        "tags": [
          "Banks",
          "banks"
        ],
        "summary": "Submit a pooled bank payin quote",
        "description": "Execute a Swipelux payin quote and return payment instructions.",
        "operationId": "submit_bank_payin_quote_package_alias_api_v1_accounts_banks_payin_quote_submit_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BankPayinQuoteSubmitRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankPayinQuoteSubmitResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/banks/payin/quote/{quote_id}/cancel": {
      "post": {
        "tags": [
          "Banks",
          "banks"
        ],
        "summary": "Cancel a locally tracked bank payin quote",
        "description": "Mark the local FiatTransfer created from a Swipelux payin quote as canceled.",
        "operationId": "cancel_bank_payin_quote_package_alias_api_v1_accounts_banks_payin_quote__quote_id__cancel_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "quote_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Quote Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankPayinQuoteCancelResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/banks/activate": {
      "post": {
        "tags": [
          "Banks",
          "banks"
        ],
        "summary": "Activate multiple bank rails",
        "description": "Create or upsert Bank rows for multiple rails in one request. Returns a per-rail result so one pending or failed rail does not abort the batch.",
        "operationId": "activate_banks_package_alias_api_v1_accounts_banks_activate_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BankActivateRailsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankActivateRailsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/banks": {
      "get": {
        "tags": [
          "Banks",
          "banks"
        ],
        "summary": "List all bank rails",
        "description": "Return every supported bank rail. Rails the user has activated come from the Bank table (with status / iban_data); rails the user has not activated are returned from the static BANK_INFO registry with status=not_started and iban_data=None. If a rail's provider KYC is APPROVED but no ACTIVE Bank row exists yet, syncs lazily from Swipelux / Align before returning.",
        "operationId": "list_banks_package_alias_api_v1_accounts_banks_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BanksListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/export/account_confirmation/{bank_id}": {
      "get": {
        "tags": [
          "Exports"
        ],
        "summary": "Download account confirmation PDF",
        "description": "Generate and return account confirmation PDF for a Bank row.",
        "operationId": "get_account_confirmation_pdf_package_alias_api_v1_transactions_export_account_confirmation__bank_id__get",
        "parameters": [
          {
            "name": "bank_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Bank Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Bank not found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/export/account_statement/{bank_id}": {
      "get": {
        "tags": [
          "Exports"
        ],
        "summary": "Download account statement PDF",
        "description": "Generate and return account statement PDF with transactions for the period.",
        "operationId": "get_account_statement_pdf_package_alias_api_v1_transactions_export_account_statement__bank_id__get",
        "parameters": [
          {
            "name": "bank_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Bank Id"
            }
          },
          {
            "name": "period_start",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Period Start"
            }
          },
          {
            "name": "period_end",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Period End"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Bank not found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/export/transaction_receipt/{transaction_id}": {
      "get": {
        "tags": [
          "Exports"
        ],
        "summary": "Get transaction receipt PDF download link",
        "description": "Generate receipt PDF for a transaction, upload to Supabase, return download link.",
        "operationId": "get_transaction_receipt_pdf_package_alias_api_v1_transactions_export_transaction_receipt__transaction_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "transaction_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Transaction Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Get Transaction Receipt Pdf Package Alias Api V1 Transactions Export Transaction Receipt  Transaction Id  Get"
                }
              }
            }
          },
          "404": {
            "description": "Transaction not found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/export/verify/{doc_id}": {
      "get": {
        "tags": [
          "Exports"
        ],
        "summary": "Verify generated document",
        "description": "Verify a generated PDF document by its internal ID and return metadata.",
        "operationId": "verify_document_package_alias_api_v1_transactions_export_verify__doc_id__get",
        "parameters": [
          {
            "name": "doc_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Doc Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentVerifyResponse"
                }
              }
            }
          },
          "404": {
            "description": "Document not found"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/utils/parse-iban": {
      "post": {
        "tags": [
          "Utils"
        ],
        "summary": "Parse IBAN from plain text",
        "description": "Extract SEPA IBAN data from plain text using AI. Returns structured ImportIbanSepaData.",
        "operationId": "parse_iban_text_package_alias_api_v1_accounts_utils_parse_iban_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParseIbanTextRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportIbanSepaData"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/utils/rates/{currency}": {
      "get": {
        "tags": [
          "Utils"
        ],
        "summary": "Get FX rates",
        "description": "Public endpoint. Returns FX rates from the given currency to USD: `bankTransfer` (Swipelux), `card` (Wirex), and `usdRate` (exchangerate-api.com). `usdRate` is populated for every currency in the invoice Currency enum (G10 + AED/HKD).",
        "operationId": "get_rate_package_alias_api_v1_accounts_utils_rates__currency__get",
        "parameters": [
          {
            "name": "currency",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Currency"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RateResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/utils/bic/{bic}": {
      "get": {
        "tags": [
          "Utils"
        ],
        "summary": "Get BIC (SWIFT) info",
        "description": "Look up bank/branch info by BIC code via API Ninjas.",
        "operationId": "get_bic_info_package_alias_api_v1_accounts_utils_bic__bic__get",
        "parameters": [
          {
            "name": "bic",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Bic"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BicInfoResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/utils/rtn/{routing_number}": {
      "get": {
        "tags": [
          "Utils"
        ],
        "summary": "Validate US routing number (RTN)",
        "description": "Look up US ABA/RTN routing number via API Ninjas.",
        "operationId": "get_rtn_info_package_alias_api_v1_accounts_utils_rtn__routing_number__get",
        "parameters": [
          {
            "name": "routing_number",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Routing Number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RtnLiteInfoResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/utils/iban/{iban}": {
      "get": {
        "tags": [
          "Utils"
        ],
        "summary": "Validate IBAN",
        "description": "Validate IBAN and return bank/account info via API Ninjas.",
        "operationId": "validate_iban_package_alias_api_v1_accounts_utils_iban__iban__get",
        "parameters": [
          {
            "name": "iban",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Iban"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IbanInfoResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/balance": {
      "get": {
        "tags": [
          "Balance"
        ],
        "summary": "Get wallet balances",
        "description": "Get OMNI, NEAR, EVM and Swipelux wallet balances for authenticated user.",
        "operationId": "get_balances_package_alias_api_v1_wallet_balance_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "wallet_type",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/WalletType"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Wallet Type"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BalancesResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/balance/withdraw_onchain": {
      "post": {
        "tags": [
          "Balance"
        ],
        "summary": "Withdraw to onchain address",
        "description": "Send funds from Swipelux custodial wallet to external onchain address.",
        "operationId": "withdraw_onchain_package_alias_api_v1_wallet_balance_withdraw_onchain_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WithdrawOnchainRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutStatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/balance/sweep": {
      "post": {
        "tags": [
          "Balance"
        ],
        "summary": "Sweep custodial balance",
        "description": "Withdraw all funds from Swipelux custodial wallet to user's Base smart wallet.",
        "operationId": "sweep_custodial_package_alias_api_v1_wallet_balance_sweep_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutStatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/balance/transaction/status/{quote_id}": {
      "get": {
        "tags": [
          "Balance"
        ],
        "summary": "Get transaction status",
        "description": "Check status of any transaction by quote_id.",
        "operationId": "get_transaction_status_package_alias_api_v1_wallet_balance_transaction_status__quote_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "quote_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Quote Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UniversalTransactionResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/balance/oneclick/tokens": {
      "get": {
        "tags": [
          "Balance"
        ],
        "summary": "Get supported tokens for cross-chain swaps",
        "description": "Get list of tokens supported by 1click for cross-chain swaps.",
        "operationId": "get_oneclick_tokens_package_alias_api_v1_wallet_balance_oneclick_tokens_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/balance/payin/quote": {
      "post": {
        "tags": [
          "Balance"
        ],
        "summary": "Get cross-chain payin quote",
        "description": "Create a quote to deposit from any chain to Base USDC.",
        "operationId": "create_payin_quote_package_alias_api_v1_wallet_balance_payin_quote_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayinQuoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UniversalQuoteResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/balance/payin/submit": {
      "post": {
        "tags": [
          "Balance"
        ],
        "summary": "Submit cross-chain payin",
        "description": "Materialize a 1click PAYIN row by deposit address. The quote is re-fetched from /v0/status (no quote state is kept on the backend). Status, origin_tx_hash and destination_tx_hash get filled in by the background 1click explorer sync once the deposit lands.",
        "operationId": "submit_payin_package_alias_api_v1_wallet_balance_payin_submit_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayinSubmitRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/balance/payout/quote": {
      "post": {
        "tags": [
          "Balance"
        ],
        "summary": "Get payout quote",
        "description": "Get quote for payout to contact. Auto-detects payment channel (IBAN/onchain/internal).",
        "operationId": "get_payout_quote_package_alias_api_v1_wallet_balance_payout_quote_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayoutQuoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UniversalQuoteResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/balance/payout/quote/dry_run": {
      "post": {
        "tags": [
          "Balance"
        ],
        "summary": "Estimate payout quote",
        "description": "Estimate payout amount and fees without a contact or provider-side activation.",
        "operationId": "dry_run_payout_quote_package_alias_api_v1_wallet_balance_payout_quote_dry_run_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayoutQuoteDryRunRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutQuoteDryRunResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wallet/balance/payout/quote/submit": {
      "post": {
        "tags": [
          "Balance"
        ],
        "summary": "Activate payout quote",
        "description": "Activate a payout quote and create pending records. Returns deposit address.",
        "operationId": "submit_payout_quote_package_alias_api_v1_wallet_balance_payout_quote_submit_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitPayoutQuoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmitPayoutQuoteResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/cards/pre-approve": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Pre-approve card issuance",
        "description": "Check Wirex KYC prerequisites and return a verification URL if all required user fields are present.",
        "operationId": "pre_approve_cards_package_alias_api_v1_accounts_cards_pre_approve_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardsPreApproveResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/cards/register": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Register user for card services",
        "description": "Register user with card provider. Required before issuing cards.",
        "operationId": "register_for_cards_package_alias_api_v1_accounts_cards_register_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardUserRegisterRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Register For Cards Package Alias Api V1 Accounts Cards Register Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/cards/phone": {
      "put": {
        "tags": [
          "Cards"
        ],
        "summary": "Set phone number",
        "description": "Set user's phone number for verification.",
        "operationId": "set_phone_number_package_alias_api_v1_accounts_cards_phone_put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetPhoneRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/cards/phone/otp": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Send phone OTP",
        "description": "Send SMS OTP to verify phone number.",
        "operationId": "send_phone_otp_package_alias_api_v1_accounts_cards_phone_otp_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SendOtpResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/cards/phone/otp/verify": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Verify phone OTP",
        "description": "Verify SMS OTP code and finalize phone number on the provider side.",
        "operationId": "verify_phone_otp_package_alias_api_v1_accounts_cards_phone_otp_verify_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyOtpRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/cards/kyc/link": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Get KYC verification link",
        "description": "Get link for user to complete KYC verification in browser.",
        "operationId": "get_kyc_link_package_alias_api_v1_accounts_cards_kyc_link_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KycLinkResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/cards": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Issue new card",
        "description": "Issue a new virtual or physical card. User must complete KYC first.",
        "operationId": "issue_card_package_alias_api_v1_accounts_cards_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/IssueCardRequest"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Data"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Get user's cards",
        "description": "Sync cards from Wirex and return the list.",
        "operationId": "get_cards_package_alias_api_v1_accounts_cards_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardsListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/cards/{card_id}": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "Get card by ID",
        "description": "Get single card details.",
        "operationId": "get_card_package_alias_api_v1_accounts_cards__card_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "card_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Card Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Cards"
        ],
        "summary": "Delete card",
        "description": "Permanently delete (close) a card. This cannot be undone.",
        "operationId": "delete_card_package_alias_api_v1_accounts_cards__card_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "card_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Card Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/cards/{card_id}/details": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Reveal full card details",
        "description": "Get full card number (PAN), CVV and expiry. Requires wallet signature for confirmation.",
        "operationId": "reveal_card_package_alias_api_v1_accounts_cards__card_id__details_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "card_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Card Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardRevealRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardDetailsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/cards/{card_id}/freeze": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Freeze card",
        "description": "Temporarily freeze a card. Can be unfrozen later.",
        "operationId": "freeze_card_package_alias_api_v1_accounts_cards__card_id__freeze_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "card_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Card Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/cards/{card_id}/unfreeze": {
      "post": {
        "tags": [
          "Cards"
        ],
        "summary": "Unfreeze card",
        "description": "Unfreeze a previously frozen card.",
        "operationId": "unfreeze_card_package_alias_api_v1_accounts_cards__card_id__unfreeze_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "card_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Card Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/cards/{card_id}/limit": {
      "put": {
        "tags": [
          "Cards"
        ],
        "summary": "Set card limit",
        "description": "Set daily spending limit for a card.",
        "operationId": "set_card_limit_package_alias_api_v1_accounts_cards__card_id__limit_put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "card_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Card Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetCardLimitRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/cards/{card_id}/label": {
      "put": {
        "tags": [
          "Cards"
        ],
        "summary": "Set card label",
        "description": "Set or clear a user-defined label (nickname) for a card. Local-only, not sent to provider.",
        "operationId": "set_card_label_package_alias_api_v1_accounts_cards__card_id__label_put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "card_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Card Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetCardLabelRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/accounts/cards/withdrawals/pending": {
      "get": {
        "tags": [
          "Cards"
        ],
        "summary": "List pending card withdrawals",
        "description": "Proxy to Wirex `GET /api/v1/withdrawal/requests` — returns pending withdrawal requests for the authenticated user's card wallet. See https://docs.wirexapp.com/docs/withdrawals#querying-pending-withdrawals",
        "operationId": "get_pending_withdrawals_package_alias_api_v1_accounts_cards_withdrawals_pending_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PendingWithdrawalsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoices/documents/contracts/invoices": {
      "post": {
        "tags": [
          "invoices"
        ],
        "summary": "Create invoice",
        "operationId": "create_invoice_package_alias_api_v1_invoices_documents_contracts_invoices_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInvoiceRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "invoices"
        ],
        "summary": "List invoices for current user",
        "operationId": "list_invoices_package_alias_api_v1_invoices_documents_contracts_invoices_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoices/documents/contracts/invoices/uploaded": {
      "post": {
        "tags": [
          "invoices"
        ],
        "summary": "Create incoming invoice from uploaded document",
        "operationId": "create_uploaded_invoice_package_alias_api_v1_invoices_documents_contracts_invoices_uploaded_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateUploadedInvoiceRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoices/documents/contracts/invoices/share_link": {
      "post": {
        "tags": [
          "invoices"
        ],
        "summary": "Generate a share link for invoice creation",
        "operationId": "invoice_share_link_package_alias_api_v1_invoices_documents_contracts_invoices_share_link_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceShareLinkResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoices/documents/contracts/invoices/batch_invoicing": {
      "post": {
        "tags": [
          "invoices"
        ],
        "summary": "Generate invoices for multiple contracts",
        "operationId": "batch_invoicing_package_alias_api_v1_invoices_documents_contracts_invoices_batch_invoicing_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchInvoicingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchInvoicingResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoices/documents/contracts/invoices/{invoice_id}": {
      "get": {
        "tags": [
          "invoices"
        ],
        "summary": "Get invoice by ID",
        "operationId": "get_invoice_package_alias_api_v1_invoices_documents_contracts_invoices__invoice_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "invoice_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Invoice Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "invoices"
        ],
        "summary": "Update invoice (set transaction_hash)",
        "operationId": "update_invoice_package_alias_api_v1_invoices_documents_contracts_invoices__invoice_id__put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "invoice_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Invoice Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateInvoiceRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoices/documents/contracts/{contract_id}/create-invoice": {
      "post": {
        "tags": [
          "invoices"
        ],
        "summary": "Create invoice from contract",
        "operationId": "create_invoice_from_contract_package_alias_api_v1_invoices_documents_contracts__contract_id__create_invoice_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInvoiceFromContractRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoices/documents/contracts/invoices/ai_parse": {
      "post": {
        "tags": [
          "invoices"
        ],
        "summary": "AI parse invoice PDF and return invoice preview",
        "operationId": "ai_parse_invoice_package_alias_api_v1_invoices_documents_contracts_invoices_ai_parse_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "document_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Document Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicInvoiceResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoices/documents/contracts": {
      "post": {
        "tags": [
          "contracts"
        ],
        "summary": "Create a new contract",
        "operationId": "create_contract_package_alias_api_v1_invoices_documents_contracts_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateContractRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "contracts"
        ],
        "summary": "List contracts for current user",
        "operationId": "list_contracts_package_alias_api_v1_invoices_documents_contracts_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoices/documents/contracts/{contract_id}/attach-document": {
      "post": {
        "tags": [
          "contracts"
        ],
        "summary": "Attach a document to a contract",
        "operationId": "attach_document_package_alias_api_v1_invoices_documents_contracts__contract_id__attach_document_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app__schemas__routers__invoices__contract__AttachDocumentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoices/documents/contracts/templates": {
      "get": {
        "tags": [
          "contracts"
        ],
        "summary": "List fillable document templates and their fields",
        "operationId": "list_templates_package_alias_api_v1_invoices_documents_contracts_templates_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplateListResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoices/documents/contracts/generate_scope_prefill": {
      "post": {
        "tags": [
          "contracts"
        ],
        "summary": "Generate plain-text scope description from a role",
        "operationId": "generate_scope_prefill_package_alias_api_v1_invoices_documents_contracts_generate_scope_prefill_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateScopePrefillRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerateScopePrefillResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoices/documents/contracts/prepare_document": {
      "post": {
        "tags": [
          "contracts"
        ],
        "summary": "Persist prepared contract markdown as a document",
        "operationId": "prepare_contract_document_package_alias_api_v1_invoices_documents_contracts_prepare_document_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PrepareContractDocumentRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PrepareContractDocumentResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoices/documents/contracts/{contract_id}/preview_document": {
      "get": {
        "tags": [
          "contracts"
        ],
        "summary": "Preview contract document generated from a saved contract",
        "operationId": "preview_contract_document_package_alias_api_v1_invoices_documents_contracts__contract_id__preview_document_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerateContractDocumentResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoices/documents/contracts/{contract_id}/preview": {
      "get": {
        "tags": [
          "contracts"
        ],
        "summary": "Preview contract document generated from a saved contract",
        "operationId": "preview_contract_document_package_alias_api_v1_invoices_documents_contracts__contract_id__preview_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerateContractDocumentResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoices/documents/contracts/{contract_id}": {
      "get": {
        "tags": [
          "contracts"
        ],
        "summary": "Get contract by ID",
        "operationId": "get_contract_package_alias_api_v1_invoices_documents_contracts__contract_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "contracts"
        ],
        "summary": "Update contract terms and schedule",
        "operationId": "update_contract_package_alias_api_v1_invoices_documents_contracts__contract_id__patch",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateContractRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "contracts"
        ],
        "summary": "Delete contract",
        "operationId": "delete_contract_package_alias_api_v1_invoices_documents_contracts__contract_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoices/documents/contracts/{contract_id}/close": {
      "post": {
        "tags": [
          "contracts"
        ],
        "summary": "Close contract",
        "operationId": "close_contract_package_alias_api_v1_invoices_documents_contracts__contract_id__close_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoices/documents/contracts/{contract_id}/pause": {
      "post": {
        "tags": [
          "contracts"
        ],
        "summary": "Pause contract",
        "operationId": "pause_contract_package_alias_api_v1_invoices_documents_contracts__contract_id__pause_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoices/documents/contracts/{contract_id}/approve": {
      "post": {
        "tags": [
          "contracts"
        ],
        "summary": "Approve contract by client or contractor",
        "operationId": "approve_contract_package_alias_api_v1_invoices_documents_contracts__contract_id__approve_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/ApproveContractRequest"
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Body"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoices/documents/contracts/{contract_id}/payment_methods": {
      "put": {
        "tags": [
          "contracts"
        ],
        "summary": "Set contractor payment methods for contract",
        "operationId": "update_contract_payment_methods_package_alias_api_v1_invoices_documents_contracts__contract_id__payment_methods_put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateContractPaymentMethodsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoices/documents/contracts/{contract_id}/label": {
      "patch": {
        "tags": [
          "contracts"
        ],
        "summary": "Update contract label",
        "operationId": "update_contract_label_package_alias_api_v1_invoices_documents_contracts__contract_id__label_patch",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateContractLabelRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/invoices/documents/contracts/{contract_id}/send-for-signing": {
      "post": {
        "tags": [
          "contracts"
        ],
        "summary": "Send contract for signing",
        "operationId": "send_for_signing_package_alias_api_v1_invoices_documents_contracts__contract_id__send_for_signing_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "contract_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Contract Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContractResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/kyb/b2b/kyb/draft": {
      "put": {
        "tags": [
          "B2B",
          "kyb"
        ],
        "summary": "Save KYB draft",
        "description": "Save KYB draft data locally. Documents must be uploaded separately via POST /kyb/draft/documents.",
        "operationId": "save_kyb_draft_package_alias_api_v1_kyb_b2b_kyb_draft_put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KybDraftRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "B2B",
          "kyb"
        ],
        "summary": "Get KYB draft",
        "description": "Get current KYB draft with all data and signed URLs for documents.",
        "operationId": "get_kyb_draft_package_alias_api_v1_kyb_b2b_kyb_draft_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KybDraftResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/kyb/b2b/kyb/draft/documents": {
      "post": {
        "tags": [
          "B2B",
          "kyb"
        ],
        "summary": "Upload draft document (deprecated, use POST /documents/upload)",
        "description": "Backward-compatible proxy to POST /documents/upload.",
        "operationId": "upload_draft_document_package_alias_api_v1_kyb_b2b_kyb_draft_documents_post",
        "deprecated": true,
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KybDocumentUpload"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentDraftInfo"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/kyb/b2b/kyb/submit": {
      "post": {
        "tags": [
          "B2B",
          "kyb"
        ],
        "summary": "Submit KYB",
        "description": "Submit all KYB data to a provider. Use provider=align for Align, provider=swipelux (default) for Swipelux.",
        "operationId": "submit_kyb_package_alias_api_v1_kyb_b2b_kyb_submit_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "provider",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/FiatProvider",
              "default": "swipelux"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KybSubmitResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/kyb/b2b/kyb/request": {
      "post": {
        "tags": [
          "B2B",
          "kyb"
        ],
        "summary": "Request KYB for a provider",
        "description": "Request KYB verification for a provider",
        "operationId": "request_kyb_package_alias_api_v1_kyb_b2b_kyb_request_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Request Kyb Package Alias Api V1 Kyb B2B Kyb Request Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/kyb/b2b/documents": {
      "get": {
        "tags": [
          "B2B",
          "documents"
        ],
        "summary": "List uploaded documents (deprecated, use GET /documents)",
        "description": "Backward-compatible proxy to GET /documents.",
        "operationId": "list_uploaded_documents_legacy_package_alias_api_v1_kyb_b2b_documents_get",
        "deprecated": true,
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "doc_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Document filter type, e.g. 'uploaded'",
              "default": "uploaded",
              "title": "Doc Type"
            },
            "description": "Document filter type, e.g. 'uploaded'"
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UploadedDocumentListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/kyb/incorporate/prices": {
      "get": {
        "tags": [
          "Incorporate"
        ],
        "summary": "Get incorporation service prices",
        "description": "Return available services and prices by jurisdiction.",
        "operationId": "get_prices_package_alias_api_v1_kyb_incorporate_prices_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Get Prices Package Alias Api V1 Kyb Incorporate Prices Get"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/kyb/incorporate/apply": {
      "post": {
        "tags": [
          "Incorporate"
        ],
        "summary": "Apply for incorporation",
        "description": "Apply for company incorporation.\n\nValidates that all shareholders have ownership_percentage filled\nand total equals 100%. Creates an invoice for incorporation services,\nsets KYC status to 'incorporating' and sends Slack notification.",
        "operationId": "apply_incorporate_package_alias_api_v1_kyb_incorporate_apply_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplyIncorporateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Apply Incorporate Package Alias Api V1 Kyb Incorporate Apply Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/kyb/user/share_kyb_link": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Share KYB link",
        "description": "Send a KYB verification link to the specified email.",
        "operationId": "share_kyb_link_package_alias_api_v1_kyb_user_share_kyb_link_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ShareKybLinkRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Share Kyb Link Package Alias Api V1 Kyb User Share Kyb Link Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/mcp/api_key": {
      "post": {
        "tags": [
          "mcp"
        ],
        "summary": "Create a new MCP API key",
        "operationId": "create_api_key_package_alias_api_v1_auth_mcp_api_key_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "user-agent",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "User-Agent"
            }
          },
          {
            "name": "device-name",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Device-Name"
            }
          },
          {
            "name": "cf-ipcountry",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cf-Ipcountry"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app__schemas__routers__security__mcp__ApiKeyCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app__schemas__routers__security__mcp__ApiKeyResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "mcp"
        ],
        "summary": "List all MCP API keys",
        "operationId": "list_api_keys_package_alias_api_v1_auth_mcp_api_key_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiKeyListResponse"
                  },
                  "title": "Response List Api Keys Package Alias Api V1 Auth Mcp Api Key Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/mcp/api_key/{key_id}": {
      "delete": {
        "tags": [
          "mcp"
        ],
        "summary": "Delete an MCP API key",
        "operationId": "delete_api_key_package_alias_api_v1_auth_mcp_api_key__key_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "key_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Key Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Delete Api Key Package Alias Api V1 Auth Mcp Api Key  Key Id  Delete"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/mcp/get_balance": {
      "get": {
        "tags": [
          "mcp"
        ],
        "summary": "Get USDC balance on Base",
        "operationId": "get_mcp_balance_package_alias_api_v1_auth_mcp_get_balance_get",
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BalanceResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/mcp/resolve_address": {
      "get": {
        "tags": [
          "mcp"
        ],
        "summary": "Resolve smart wallet address by email",
        "description": "Resolve or create a smart wallet address for the given email.\n\nIf the user has no wallet, pregenerates a Privy embedded wallet\nand deploys a smart wallet with it as owner.",
        "operationId": "resolve_address_package_alias_api_v1_auth_mcp_resolve_address_get",
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Recipient email",
              "title": "Email"
            },
            "description": "Recipient email"
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Resolve Address Package Alias Api V1 Auth Mcp Resolve Address Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/mcp/transfer": {
      "post": {
        "tags": [
          "mcp"
        ],
        "summary": "Transfer USDC through MCP using invoice/contact/quote context",
        "description": "Create and submit the UserOperation inside the backend.\n\nThe request body is flat typed data, e.g. {\"invoiceId\": \"...\", \"memo\": \"...\"}.",
        "operationId": "transfer_package_alias_api_v1_auth_mcp_transfer_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency-Key"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/McpTransferContext"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransferResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/mcp/transfer_to_user": {
      "post": {
        "tags": [
          "mcp"
        ],
        "summary": "Transfer USDC to user via spend permission",
        "operationId": "transfer_to_user_package_alias_api_v1_auth_mcp_transfer_to_user_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Idempotency-Key"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransferResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/mcp/transfers": {
      "get": {
        "tags": [
          "mcp"
        ],
        "summary": "List MCP transfers for authenticated user",
        "operationId": "list_transfers_package_alias_api_v1_auth_mcp_transfers_get",
        "parameters": [
          {
            "name": "idempotency_key",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency Key"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/McpTransactionResponse"
                  },
                  "title": "Response List Transfers Package Alias Api V1 Auth Mcp Transfers Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/chat/{chat_type}": {
      "post": {
        "tags": [
          "Chat"
        ],
        "summary": "Create or get a chat",
        "description": "Get or create the internal chat of the given type for the current user.\n\nOptionally sends the first message.",
        "operationId": "create_chat_package_alias_api_v1_user_chat__chat_type__post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "chat_type",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/UserChatType"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChatCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app__schemas__routers__user__user__ChatResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/chat/{chat_type}/messages": {
      "get": {
        "tags": [
          "Chat"
        ],
        "summary": "Get chat messages",
        "description": "Return all messages in the chat.",
        "operationId": "get_chat_messages_package_alias_api_v1_user_chat__chat_type__messages_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "chat_type",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/UserChatType"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 1000,
              "minimum": 1,
              "default": 500,
              "title": "Limit"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ChatMessageResponse"
                  },
                  "title": "Response Get Chat Messages Package Alias Api V1 User Chat  Chat Type  Messages Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Chat"
        ],
        "summary": "Send a chat message",
        "description": "Send a message in the chat.",
        "operationId": "send_chat_message_package_alias_api_v1_user_chat__chat_type__messages_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "chat_type",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/UserChatType"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChatMessageRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChatMessageResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/chat/{chat_type}/read": {
      "post": {
        "tags": [
          "Chat"
        ],
        "summary": "Mark chat as read by the user",
        "operationId": "mark_chat_read_package_alias_api_v1_user_chat__chat_type__read_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "chat_type",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/UserChatType"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/chat/{chat_type}/stream": {
      "get": {
        "tags": [
          "Chat"
        ],
        "summary": "SSE stream for chat messages",
        "description": "Server-Sent Events stream for real-time chat messages.",
        "operationId": "stream_chat_package_alias_api_v1_user_chat__chat_type__stream_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "chat_type",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/UserChatType"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/user/2fa/status": {
      "get": {
        "tags": [
          "2FA"
        ],
        "summary": "Get Totp Status Package Alias",
        "description": "Check if 2FA is enabled for the current user.",
        "operationId": "get_totp_status_package_alias_api_v1_auth_user_2fa_status_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TotpStatusResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/auth/user/2fa/setup": {
      "post": {
        "tags": [
          "2FA"
        ],
        "summary": "Setup Totp Package Alias",
        "description": "Generate TOTP secret and provisioning URI for QR code.",
        "operationId": "setup_totp_package_alias_api_v1_auth_user_2fa_setup_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TotpSetupResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/auth/user/2fa/activate": {
      "post": {
        "tags": [
          "2FA"
        ],
        "summary": "Activate Totp Package Alias",
        "description": "Verify first TOTP code and activate 2FA. Returns recovery codes.",
        "operationId": "activate_totp_package_alias_api_v1_auth_user_2fa_activate_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TotpVerifyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TotpActivateResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/auth/user/2fa": {
      "delete": {
        "tags": [
          "2FA"
        ],
        "summary": "Disable Totp Package Alias",
        "description": "Disable 2FA. Requires current TOTP code.",
        "operationId": "disable_totp_package_alias_api_v1_auth_user_2fa_delete",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TotpDisableRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Disable Totp Package Alias Api V1 Auth User 2Fa Delete"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/auth/user/2fa/recovery-codes": {
      "post": {
        "tags": [
          "2FA"
        ],
        "summary": "Regenerate Recovery Codes Package Alias",
        "description": "Regenerate recovery codes. Requires current TOTP code.",
        "operationId": "regenerate_recovery_codes_package_alias_api_v1_auth_user_2fa_recovery_codes_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TotpVerifyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TotpActivateResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/user/team/invite": {
      "post": {
        "tags": [
          "team"
        ],
        "summary": "Send invite",
        "description": "Send an invite to the specified email and track the corresponding analytics event.",
        "operationId": "send_team_invite_package_alias_api_v1_user_team_invite_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InviteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Send Team Invite Package Alias Api V1 User Team Invite Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/team/spaces": {
      "get": {
        "tags": [
          "team"
        ],
        "summary": "List Available Spaces Package Alias",
        "description": "List team spaces where the current user is a member.",
        "operationId": "list_available_spaces_package_alias_api_v1_user_team_spaces_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AvailableSpacesResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/user/team": {
      "get": {
        "tags": [
          "team"
        ],
        "summary": "List Team Package Alias",
        "description": "List team members for the current user's account.",
        "operationId": "list_team_package_alias_api_v1_user_team_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamListResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "team"
        ],
        "summary": "Add Team Member Package Alias",
        "description": "Add a user to your team by email.",
        "operationId": "add_team_member_package_alias_api_v1_user_team_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "user-agent",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "User-Agent"
            }
          },
          {
            "name": "device-name",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Device-Name"
            }
          },
          {
            "name": "cf-ipcountry",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cf-Ipcountry"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TeamAddRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamMemberResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/team/{user_id}": {
      "delete": {
        "tags": [
          "team"
        ],
        "summary": "Remove Team Member Package Alias",
        "description": "Remove a user from your team.",
        "operationId": "remove_team_member_package_alias_api_v1_user_team__user_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "User Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/tee/public_key": {
      "get": {
        "tags": [
          "tee-local"
        ],
        "summary": "Get Public Key Package Alias",
        "description": "Get the signing public key (ed25519:base58).",
        "operationId": "get_public_key_package_alias_api_v1_auth_tee_public_key_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicKeyResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/tee/near_call": {
      "post": {
        "tags": [
          "tee-local"
        ],
        "summary": "Near Call Package Alias",
        "description": "Execute w_execute_signed transaction using near_wallet key.\n\nAccepts {msg, publicKey, proof} from the frontend, extracts receiver_id\n(wallet address) from msg.signer_id.",
        "operationId": "near_call_package_alias_api_v1_auth_tee_near_call_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NearCallRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NearCallResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/xero/connect": {
      "get": {
        "tags": [
          "Xero"
        ],
        "summary": "Xero Connect Package Alias",
        "description": "Start Xero OAuth flow. Returns redirect to Xero login.",
        "operationId": "xero_connect_package_alias_api_v1_transactions_xero_connect_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/xero/callback": {
      "get": {
        "tags": [
          "Xero"
        ],
        "summary": "Xero Callback Package Alias",
        "description": "OAuth callback from Xero. Exchanges code for tokens.\n\nNote: This endpoint is called by Xero redirect, so we look up the user\nfrom the stored OAuth state rather than requiring a JWT header.",
        "operationId": "xero_callback_package_alias_api_v1_transactions_xero_callback_get",
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Code"
            }
          },
          {
            "name": "state",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "title": "State"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/xero/disconnect": {
      "delete": {
        "tags": [
          "Xero"
        ],
        "summary": "Xero Disconnect Package Alias",
        "description": "Disconnect Xero integration.",
        "operationId": "xero_disconnect_package_alias_api_v1_transactions_xero_disconnect_delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Xero Disconnect Package Alias Api V1 Transactions Xero Disconnect Delete"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/xero/status": {
      "get": {
        "tags": [
          "Xero"
        ],
        "summary": "Xero Status Package Alias",
        "description": "Check Xero connection status.",
        "operationId": "xero_status_package_alias_api_v1_transactions_xero_status_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/XeroStatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/xero/export": {
      "post": {
        "tags": [
          "Xero"
        ],
        "summary": "Xero Export Package Alias",
        "description": "Export transactions to Xero as Bank Transactions.",
        "operationId": "xero_export_package_alias_api_v1_transactions_xero_export_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/XeroExportRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/XeroExportResult"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/merchant/products": {
      "post": {
        "tags": [
          "Merchant"
        ],
        "summary": "Create Product Package Alias",
        "operationId": "create_product_package_alias_api_v1_transactions_merchant_products_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Merchant"
        ],
        "summary": "List Products Package Alias",
        "operationId": "list_products_package_alias_api_v1_transactions_merchant_products_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "active_only",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": true,
              "title": "Active Only"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductResponse"
                  },
                  "title": "Response List Products Package Alias Api V1 Transactions Merchant Products Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/merchant/products/{product_id}": {
      "get": {
        "tags": [
          "Merchant"
        ],
        "summary": "Get Product Package Alias",
        "operationId": "get_product_package_alias_api_v1_transactions_merchant_products__product_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "product_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Product Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Merchant"
        ],
        "summary": "Update Product Package Alias",
        "operationId": "update_product_package_alias_api_v1_transactions_merchant_products__product_id__patch",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "product_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Product Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Merchant"
        ],
        "summary": "Deactivate Product Package Alias",
        "operationId": "deactivate_product_package_alias_api_v1_transactions_merchant_products__product_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "product_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Product Id"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/merchant/products/{product_id}/payments": {
      "get": {
        "tags": [
          "Merchant"
        ],
        "summary": "List Product Payments Package Alias",
        "operationId": "list_product_payments_package_alias_api_v1_transactions_merchant_products__product_id__payments_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "product_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Product Id"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "X-Api-Key"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PaymentTransactionResponse"
                  },
                  "title": "Response List Product Payments Package Alias Api V1 Transactions Merchant Products  Product Id  Payments Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/health": {
      "get": {
        "tags": [
          "Health"
        ],
        "summary": "Health Check",
        "description": "Health check endpoint.",
        "operationId": "health_check_health_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/": {
      "get": {
        "tags": [
          "Root"
        ],
        "summary": "Root",
        "description": "Root endpoint.",
        "operationId": "root__get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/api/v1/apps/me": {
      "get": {
        "tags": [
          "apps"
        ],
        "summary": "Introspect the current API key",
        "description": "Return the user identity, owning app, granted scopes, balance, and remaining spend limit for the configured API key. Used by `hevn whoami`.",
        "operationId": "me_api_v1_apps_me_get",
        "security": [
          {
            "HTTPBearer": []
          },
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "title": "X-Api-Key"
            },
            "description": "Alternative API key header. Use Authorization Bearer by default, or X-Api-Key when that header mode is configured."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AppsMeResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/apps/transfer": {
      "post": {
        "tags": [
          "apps",
          "apps-transfer"
        ],
        "summary": "Send USDC from the app resolved by the API key",
        "description": "Resolve recipient and amount from context, then spend USDC through the app associated with the calling API key. This is the app-id-free transfer route used by the current HEVN CLI.",
        "operationId": "transfer_api_v1_apps_transfer_post",
        "security": [
          {
            "HTTPBearer": []
          },
          {
            "ApiKeyAuth": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency-Key"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "title": "X-Api-Key"
            },
            "description": "Alternative API key header. Use Authorization Bearer by default, or X-Api-Key when that header mode is configured."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AppTransferContext"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AppTransferResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/apps/transfers": {
      "get": {
        "tags": [
          "apps",
          "apps-transfer"
        ],
        "summary": "List transfers for the app resolved by the API key",
        "description": "List app-scoped transfers for the app associated with the calling API key. This is the app-id-free transfer history route used by the current HEVN CLI wrapper.",
        "operationId": "list_transfers_api_v1_apps_transfers_get",
        "parameters": [
          {
            "name": "idempotency_key",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency Key"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "x-api-key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "title": "X-Api-Key"
            },
            "description": "Alternative API key header. Use Authorization Bearer by default, or X-Api-Key when that header mode is configured."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/McpTransactionResponse"
                  },
                  "title": "Response List Transfers Api V1 Apps Transfers Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          },
          {
            "ApiKeyAuth": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "AccountBalancesResponse": {
        "properties": {
          "accountId": {
            "type": "string",
            "title": "Accountid"
          },
          "chainId": {
            "type": "string",
            "title": "Chainid"
          },
          "walletType": {
            "$ref": "#/components/schemas/WalletType"
          },
          "balanceUsd": {
            "type": "number",
            "title": "Balanceusd"
          },
          "rawBalance": {
            "type": "string",
            "title": "Rawbalance"
          },
          "balanceByToken": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Balancebytoken"
          },
          "custodial": {
            "type": "boolean",
            "title": "Custodial",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "accountId",
          "chainId",
          "walletType",
          "balanceUsd",
          "rawBalance",
          "balanceByToken"
        ],
        "title": "AccountBalancesResponse"
      },
      "AccountOwnerRequest": {
        "properties": {
          "msg": {
            "type": "string",
            "title": "Msg"
          },
          "publicKey": {
            "type": "string",
            "title": "Publickey"
          },
          "proof": {
            "type": "string",
            "title": "Proof"
          }
        },
        "type": "object",
        "required": [
          "msg",
          "publicKey",
          "proof"
        ],
        "title": "AccountOwnerRequest",
        "description": "Request for /account_owner — add_extension with OTP confirmation."
      },
      "AccountOwnerResponse": {
        "properties": {
          "sessionKey": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sessionkey"
          },
          "transactionHash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transactionhash"
          }
        },
        "type": "object",
        "title": "AccountOwnerResponse",
        "description": "Response for /account_owner.\n\nIf session_key is set → OTP required (first step).\nIf transaction_hash is set → execution done (second step)."
      },
      "AchAccountInput": {
        "properties": {
          "accountHolderType": {
            "$ref": "#/components/schemas/AlignAccountHolderType"
          },
          "accountHolderFirstName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderfirstname"
          },
          "accountHolderLastName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderlastname"
          },
          "accountHolderBusinessName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderbusinessname"
          },
          "accountType": {
            "type": "string",
            "enum": [
              "ach",
              "fedwire"
            ],
            "title": "Accounttype",
            "default": "ach"
          },
          "bankName": {
            "type": "string",
            "title": "Bankname",
            "default": ""
          },
          "accountNumber": {
            "type": "string",
            "title": "Accountnumber"
          },
          "routingNumber": {
            "type": "string",
            "title": "Routingnumber"
          },
          "country": {
            "type": "string",
            "title": "Country"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "USD"
          },
          "relationship": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__schemas__base__ContactRelationship"
              },
              {
                "type": "null"
              }
            ],
            "default": "resident_transfer_between_accounts"
          }
        },
        "type": "object",
        "required": [
          "accountHolderType",
          "accountNumber",
          "routingNumber",
          "country"
        ],
        "title": "AchAccountInput",
        "description": "ACH bank contact input."
      },
      "AdminAuthRequest": {
        "properties": {
          "secret": {
            "type": "string",
            "title": "Secret"
          }
        },
        "type": "object",
        "required": [
          "secret"
        ],
        "title": "AdminAuthRequest"
      },
      "AdminAuthResponse": {
        "properties": {
          "accessToken": {
            "type": "string",
            "title": "Accesstoken"
          },
          "tokenType": {
            "type": "string",
            "title": "Tokentype",
            "default": "bearer"
          }
        },
        "type": "object",
        "required": [
          "accessToken"
        ],
        "title": "AdminAuthResponse"
      },
      "AdminBankListResponse": {
        "properties": {
          "banks": {
            "items": {
              "$ref": "#/components/schemas/BankResponse"
            },
            "type": "array",
            "title": "Banks"
          },
          "existing": {
            "items": {
              "$ref": "#/components/schemas/BankResponse"
            },
            "type": "array",
            "title": "Existing"
          },
          "allOptionals": {
            "items": {
              "$ref": "#/components/schemas/BankResponse"
            },
            "type": "array",
            "title": "Alloptionals"
          }
        },
        "type": "object",
        "required": [
          "banks"
        ],
        "title": "AdminBankListResponse"
      },
      "AdminBankStatusRequest": {
        "properties": {
          "status": {
            "$ref": "#/components/schemas/IBANStatus"
          }
        },
        "type": "object",
        "required": [
          "status"
        ],
        "title": "AdminBankStatusRequest"
      },
      "AdminContactItem": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "preview": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Preview"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name"
        ],
        "title": "AdminContactItem"
      },
      "AdminContactListResponse": {
        "properties": {
          "contacts": {
            "items": {
              "$ref": "#/components/schemas/AdminContactItem"
            },
            "type": "array",
            "title": "Contacts"
          }
        },
        "type": "object",
        "required": [
          "contacts"
        ],
        "title": "AdminContactListResponse"
      },
      "AdminPayinQuoteRequest": {
        "properties": {
          "amount": {
            "anyOf": [
              {
                "type": "number",
                "exclusiveMinimum": 0
              },
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              }
            ],
            "title": "Amount"
          },
          "bankAccountId": {
            "type": "string",
            "format": "uuid",
            "title": "Bankaccountid"
          },
          "memo": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ],
            "title": "Memo"
          },
          "userId": {
            "type": "string",
            "format": "uuid",
            "title": "Userid"
          }
        },
        "type": "object",
        "required": [
          "amount",
          "bankAccountId",
          "userId"
        ],
        "title": "AdminPayinQuoteRequest"
      },
      "AdminPayinSubmitRequest": {
        "properties": {
          "userId": {
            "type": "string",
            "format": "uuid",
            "title": "Userid"
          },
          "quoteId": {
            "type": "string",
            "title": "Quoteid"
          }
        },
        "type": "object",
        "required": [
          "userId",
          "quoteId"
        ],
        "title": "AdminPayinSubmitRequest"
      },
      "AdminPendingDepositResponse": {
        "properties": {
          "userId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Userid"
          },
          "customerId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Customerid"
          },
          "payinWallet": {
            "additionalProperties": {
              "type": "number"
            },
            "type": "object",
            "title": "Payinwallet"
          },
          "payoutWallet": {
            "additionalProperties": {
              "type": "number"
            },
            "type": "object",
            "title": "Payoutwallet"
          }
        },
        "type": "object",
        "title": "AdminPendingDepositResponse"
      },
      "AdminRefundRequest": {
        "properties": {
          "customerId": {
            "type": "string",
            "title": "Customerid"
          },
          "amount": {
            "type": "number",
            "title": "Amount"
          }
        },
        "type": "object",
        "required": [
          "customerId",
          "amount"
        ],
        "title": "AdminRefundRequest"
      },
      "AdminRefundResponse": {
        "properties": {
          "ok": {
            "type": "boolean",
            "title": "Ok"
          },
          "customerId": {
            "type": "string",
            "title": "Customerid"
          },
          "userId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Userid"
          },
          "payoutId": {
            "type": "string",
            "title": "Payoutid"
          },
          "fromWalletId": {
            "type": "string",
            "title": "Fromwalletid"
          },
          "externalWalletId": {
            "type": "string",
            "title": "Externalwalletid"
          },
          "amount": {
            "type": "number",
            "title": "Amount"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "USDC"
          }
        },
        "type": "object",
        "required": [
          "ok",
          "customerId",
          "payoutId",
          "fromWalletId",
          "externalWalletId",
          "amount"
        ],
        "title": "AdminRefundResponse"
      },
      "AdminSyncBanksRailResponse": {
        "properties": {
          "provider": {
            "$ref": "#/components/schemas/FiatProvider"
          },
          "rail": {
            "type": "string",
            "title": "Rail"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Id"
          },
          "message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Message"
          },
          "bankId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bankid"
          }
        },
        "type": "object",
        "required": [
          "provider",
          "rail",
          "status"
        ],
        "title": "AdminSyncBanksRailResponse"
      },
      "AdminSyncBanksRequestResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "rail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rail"
          },
          "bankIds": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Bankids"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Message"
          },
          "blockedReasons": {
            "items": {
              "$ref": "#/components/schemas/SlxRailOverviewBlocker"
            },
            "type": "array",
            "title": "Blockedreasons"
          }
        },
        "type": "object",
        "required": [
          "id",
          "status"
        ],
        "title": "AdminSyncBanksRequestResponse"
      },
      "AdminSyncBanksResponse": {
        "properties": {
          "users": {
            "items": {
              "$ref": "#/components/schemas/AdminSyncBanksUserResponse"
            },
            "type": "array",
            "title": "Users"
          },
          "synced": {
            "type": "integer",
            "title": "Synced"
          }
        },
        "type": "object",
        "required": [
          "users",
          "synced"
        ],
        "title": "AdminSyncBanksResponse"
      },
      "AdminSyncBanksUserResponse": {
        "properties": {
          "userId": {
            "type": "string",
            "format": "uuid",
            "title": "Userid"
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "requests": {
            "items": {
              "$ref": "#/components/schemas/AdminSyncBanksRequestResponse"
            },
            "type": "array",
            "title": "Requests"
          },
          "rails": {
            "items": {
              "$ref": "#/components/schemas/AdminSyncBanksRailResponse"
            },
            "type": "array",
            "title": "Rails"
          }
        },
        "type": "object",
        "required": [
          "userId"
        ],
        "title": "AdminSyncBanksUserResponse"
      },
      "AgentAttachment": {
        "properties": {
          "filename": {
            "type": "string",
            "title": "Filename"
          },
          "media_type": {
            "type": "string",
            "title": "Media Type",
            "description": "Must be application/pdf, image/jpeg, or image/png"
          },
          "data_base64": {
            "type": "string",
            "title": "Data Base64",
            "description": "Base64-encoded file bytes"
          },
          "user_doc_type_hint": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Doc Type Hint",
            "description": "Optional doc_type the admin pre-selected; agent may override"
          }
        },
        "type": "object",
        "required": [
          "filename",
          "media_type",
          "data_base64"
        ],
        "title": "AgentAttachment",
        "description": "Inline file attachment carried with a chat turn."
      },
      "AlignAccountHolderType": {
        "type": "string",
        "enum": [
          "individual",
          "business"
        ],
        "title": "AlignAccountHolderType",
        "description": "Account holder type."
      },
      "AlignWebhookCreateRequest": {
        "properties": {
          "url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Url"
          }
        },
        "type": "object",
        "title": "AlignWebhookCreateRequest",
        "description": "Create Align webhook request."
      },
      "AlignWebhookEndpoint": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "url": {
            "type": "string",
            "title": "Url"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          },
          "createdAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "url"
        ],
        "title": "AlignWebhookEndpoint",
        "description": "Align developer webhook endpoint."
      },
      "AlignWebhookEvent": {
        "properties": {
          "eventType": {
            "type": "string",
            "title": "Eventtype"
          },
          "entityId": {
            "type": "string",
            "title": "Entityid"
          },
          "entityType": {
            "type": "string",
            "title": "Entitytype"
          },
          "eventPayload": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Eventpayload"
          },
          "createdAt": {
            "type": "string",
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "eventType",
          "entityId",
          "entityType",
          "createdAt"
        ],
        "title": "AlignWebhookEvent",
        "description": "Align webhook payload."
      },
      "AlignWebhookListResponse": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/AlignWebhookEndpoint"
            },
            "type": "array",
            "title": "Items",
            "default": []
          }
        },
        "type": "object",
        "title": "AlignWebhookListResponse",
        "description": "List of Align developer webhook endpoints."
      },
      "ApiAppAccess": {
        "properties": {
          "cards": {
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array",
            "title": "Cards",
            "default": []
          },
          "banks": {
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array",
            "title": "Banks",
            "default": []
          },
          "scope": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Scope",
            "default": []
          }
        },
        "type": "object",
        "title": "ApiAppAccess"
      },
      "ApiAppCreateRequest": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "title": "Name"
          },
          "access": {
            "$ref": "#/components/schemas/ApiAppAccess"
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "ApiAppCreateRequest"
      },
      "ApiAppDetailResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "access": {
            "$ref": "#/components/schemas/ApiAppAccess"
          },
          "smartWalletAddress": {
            "type": "string",
            "title": "Smartwalletaddress"
          },
          "lastUsed": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastused"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "title": "Updatedat"
          },
          "keys": {
            "items": {
              "$ref": "#/components/schemas/ApiKeyListItem"
            },
            "type": "array",
            "title": "Keys",
            "default": []
          },
          "permissions": {
            "items": {
              "$ref": "#/components/schemas/SmartWalletPermissionResponse"
            },
            "type": "array",
            "title": "Permissions",
            "default": []
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "access",
          "smartWalletAddress",
          "lastUsed",
          "createdAt",
          "updatedAt"
        ],
        "title": "ApiAppDetailResponse"
      },
      "ApiAppResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "access": {
            "$ref": "#/components/schemas/ApiAppAccess"
          },
          "smartWalletAddress": {
            "type": "string",
            "title": "Smartwalletaddress"
          },
          "lastUsed": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastused"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "title": "Updatedat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "access",
          "smartWalletAddress",
          "lastUsed",
          "createdAt",
          "updatedAt"
        ],
        "title": "ApiAppResponse"
      },
      "ApiKeyListItem": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "walletAddress": {
            "type": "string",
            "title": "Walletaddress"
          },
          "keyPreview": {
            "type": "string",
            "title": "Keypreview"
          },
          "lastUse": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastuse"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "walletAddress",
          "keyPreview",
          "lastUse",
          "createdAt"
        ],
        "title": "ApiKeyListItem",
        "description": "Used in GET contexts — does NOT include raw key."
      },
      "ApiKeyListResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "keyPreview": {
            "type": "string",
            "title": "Keypreview"
          },
          "walletAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Walletaddress"
          },
          "ipRestriction": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Iprestriction"
          },
          "maxSpend": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maxspend"
          },
          "totalSpend": {
            "type": "number",
            "title": "Totalspend"
          },
          "remaining": {
            "type": "integer",
            "title": "Remaining",
            "default": 0
          },
          "lastUse": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastuse"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "keyPreview",
          "totalSpend",
          "createdAt"
        ],
        "title": "ApiKeyListResponse"
      },
      "AppTransferContext": {
        "properties": {
          "contactId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contactid"
          },
          "quoteId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quoteid"
          },
          "invoiceId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invoiceid"
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amount"
          },
          "memo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Memo"
          }
        },
        "type": "object",
        "title": "AppTransferContext",
        "description": "Body of POST /apps/transfer.\n\nExactly one of ``contactId`` / ``quoteId`` / ``invoiceId`` MUST be set\n(mirrors the /mcp/transfer body). ``amount`` is required when\n``contactId`` is the dispatch path; otherwise it's derived from the\nreferenced invoice / quote."
      },
      "AppTransferResponse": {
        "properties": {
          "txHash": {
            "type": "string",
            "title": "Txhash"
          }
        },
        "type": "object",
        "required": [
          "txHash"
        ],
        "title": "AppTransferResponse"
      },
      "AppearancePreference": {
        "type": "string",
        "enum": [
          "system",
          "light",
          "dark"
        ],
        "title": "AppearancePreference",
        "description": "Appearance theme preference."
      },
      "ApplyIncorporateRequest": {
        "properties": {
          "services": {
            "items": {
              "$ref": "#/components/schemas/IncorporationService"
            },
            "type": "array",
            "minItems": 1,
            "title": "Services"
          },
          "officeAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Officeaddress"
          },
          "registratorContactInfo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Registratorcontactinfo"
          }
        },
        "type": "object",
        "required": [
          "services"
        ],
        "title": "ApplyIncorporateRequest",
        "description": "Request body for incorporation application."
      },
      "ApproveContractRequest": {
        "properties": {
          "clientAddress": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "contractorAddress": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "paymentMethods": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Paymentmethods"
          }
        },
        "type": "object",
        "title": "ApproveContractRequest",
        "description": "Optional body for contract approval — each party can provide their own data."
      },
      "AssignInviteCodeRequest": {
        "properties": {
          "inviteCode": {
            "type": "string",
            "title": "Invitecode",
            "description": "Invite code string to assign"
          }
        },
        "type": "object",
        "required": [
          "inviteCode"
        ],
        "title": "AssignInviteCodeRequest"
      },
      "AuthCompleteRequest": {
        "properties": {
          "sessionKey": {
            "type": "string",
            "title": "Sessionkey",
            "description": "Session key from auth/start"
          }
        },
        "type": "object",
        "required": [
          "sessionKey"
        ],
        "title": "AuthCompleteRequest",
        "description": "Request for completing authentication."
      },
      "AuthEmailOtpRequest": {
        "properties": {
          "sessionKey": {
            "type": "string",
            "title": "Sessionkey",
            "description": "Session key from auth/start"
          },
          "otpCode": {
            "type": "string",
            "maxLength": 6,
            "minLength": 6,
            "title": "Otpcode",
            "description": "6-digit OTP code"
          }
        },
        "type": "object",
        "required": [
          "sessionKey",
          "otpCode"
        ],
        "title": "AuthEmailOtpRequest",
        "description": "Request schema for email OTP verification."
      },
      "AuthMethod": {
        "type": "string",
        "enum": [
          "email_otp",
          "totp",
          "signed_jwt"
        ],
        "title": "AuthMethod"
      },
      "AuthSessionResponse": {
        "properties": {
          "refreshToken": {
            "type": "string",
            "title": "Refreshtoken",
            "description": "JWT refresh token (7 days)"
          },
          "tokenType": {
            "type": "string",
            "title": "Tokentype",
            "default": "bearer"
          },
          "userId": {
            "type": "string",
            "title": "Userid",
            "description": "User UUID"
          },
          "email": {
            "type": "string",
            "title": "Email",
            "description": "User email"
          },
          "isNewUser": {
            "type": "boolean",
            "title": "Isnewuser",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "refreshToken",
          "userId",
          "email"
        ],
        "title": "AuthSessionResponse",
        "description": "Response for POST /auth/complete — refresh token."
      },
      "AuthStartRequest": {
        "properties": {
          "email": {
            "type": "string",
            "title": "Email",
            "description": "User email address"
          }
        },
        "type": "object",
        "required": [
          "email"
        ],
        "title": "AuthStartRequest",
        "description": "Request schema for starting authentication."
      },
      "AuthStartResponse": {
        "properties": {
          "sessionKey": {
            "type": "string",
            "title": "Sessionkey",
            "description": "Session key for OTP verification"
          },
          "status": {
            "type": "string",
            "title": "Status",
            "description": "Auth session status",
            "default": "pending"
          },
          "authMethods": {
            "items": {
              "$ref": "#/components/schemas/AuthMethod"
            },
            "type": "array",
            "title": "Authmethods",
            "description": "Required auth methods"
          }
        },
        "type": "object",
        "required": [
          "sessionKey"
        ],
        "title": "AuthStartResponse",
        "description": "Response schema for auth start."
      },
      "AvailableSpaceResponse": {
        "properties": {
          "spaceId": {
            "type": "string",
            "title": "Spaceid"
          },
          "email": {
            "type": "string",
            "title": "Email"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "role": {
            "type": "string",
            "title": "Role"
          },
          "lastLogin": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastlogin"
          }
        },
        "type": "object",
        "required": [
          "spaceId",
          "email",
          "role"
        ],
        "title": "AvailableSpaceResponse",
        "description": "A team space the current user has access to."
      },
      "AvailableSpacesResponse": {
        "properties": {
          "spaces": {
            "items": {
              "$ref": "#/components/schemas/AvailableSpaceResponse"
            },
            "type": "array",
            "title": "Spaces"
          }
        },
        "type": "object",
        "required": [
          "spaces"
        ],
        "title": "AvailableSpacesResponse",
        "description": "List of team spaces available to the current user."
      },
      "AvatarUploadRequest": {
        "properties": {
          "base64": {
            "type": "string",
            "title": "Base64",
            "description": "Base64 encoded image file (with or without data URL prefix)"
          }
        },
        "type": "object",
        "required": [
          "base64"
        ],
        "title": "AvatarUploadRequest",
        "description": "Request schema for uploading user avatar."
      },
      "AvatarUploadResponse": {
        "properties": {
          "avatarUrl": {
            "type": "string",
            "title": "Avatarurl"
          }
        },
        "type": "object",
        "required": [
          "avatarUrl"
        ],
        "title": "AvatarUploadResponse",
        "description": "Response schema for avatar upload."
      },
      "BalanceResponse": {
        "properties": {
          "email": {
            "type": "string",
            "title": "Email"
          },
          "address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Address"
          },
          "balance": {
            "type": "number",
            "title": "Balance",
            "default": 0
          },
          "remaining": {
            "type": "number",
            "title": "Remaining",
            "default": 0
          }
        },
        "type": "object",
        "required": [
          "email"
        ],
        "title": "BalanceResponse"
      },
      "BalancesResponse": {
        "properties": {
          "accounts": {
            "items": {
              "$ref": "#/components/schemas/AccountBalancesResponse"
            },
            "type": "array",
            "title": "Accounts"
          },
          "evmAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evmaddress"
          },
          "privyAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Privyaddress"
          }
        },
        "type": "object",
        "required": [
          "accounts"
        ],
        "title": "BalancesResponse",
        "description": "Response with wallet balances."
      },
      "BankActivateRailError": {
        "properties": {
          "statusCode": {
            "type": "integer",
            "title": "Statuscode"
          },
          "message": {
            "type": "string",
            "title": "Message"
          },
          "detail": {
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          }
        },
        "type": "object",
        "required": [
          "statusCode",
          "message"
        ],
        "title": "BankActivateRailError",
        "description": "Per-rail bulk activation error."
      },
      "BankActivateRailResult": {
        "properties": {
          "rail": {
            "$ref": "#/components/schemas/BankRail"
          },
          "ok": {
            "type": "boolean",
            "title": "Ok"
          },
          "bank": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/BankResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "error": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/BankActivateRailError"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "rail",
          "ok"
        ],
        "title": "BankActivateRailResult",
        "description": "Per-rail bulk activation result."
      },
      "BankActivateRailsRequest": {
        "properties": {
          "rails": {
            "items": {
              "$ref": "#/components/schemas/BankRail"
            },
            "type": "array",
            "title": "Rails"
          }
        },
        "type": "object",
        "required": [
          "rails"
        ],
        "title": "BankActivateRailsRequest",
        "description": "Bulk bank activation request."
      },
      "BankActivateRailsResponse": {
        "properties": {
          "results": {
            "items": {
              "$ref": "#/components/schemas/BankActivateRailResult"
            },
            "type": "array",
            "title": "Results"
          }
        },
        "type": "object",
        "required": [
          "results"
        ],
        "title": "BankActivateRailsResponse",
        "description": "Bulk bank activation response."
      },
      "BankPayinQuoteCancelResponse": {
        "properties": {
          "transferId": {
            "type": "string",
            "format": "uuid",
            "title": "Transferid"
          },
          "quoteId": {
            "type": "string",
            "title": "Quoteid"
          },
          "status": {
            "type": "string",
            "title": "Status"
          }
        },
        "type": "object",
        "required": [
          "transferId",
          "quoteId",
          "status"
        ],
        "title": "BankPayinQuoteCancelResponse",
        "description": "Response after canceling a locally tracked bank payin quote."
      },
      "BankPayinQuoteRequest": {
        "properties": {
          "amount": {
            "anyOf": [
              {
                "type": "number",
                "exclusiveMinimum": 0
              },
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              }
            ],
            "title": "Amount"
          },
          "bankAccountId": {
            "type": "string",
            "format": "uuid",
            "title": "Bankaccountid"
          },
          "memo": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ],
            "title": "Memo"
          }
        },
        "type": "object",
        "required": [
          "amount",
          "bankAccountId"
        ],
        "title": "BankPayinQuoteRequest",
        "description": "Request a Swipelux payin quote for a pooled bank rail."
      },
      "BankPayinQuoteResponse": {
        "properties": {
          "quoteId": {
            "type": "string",
            "title": "Quoteid"
          },
          "provider": {
            "$ref": "#/components/schemas/FiatProvider",
            "default": "swipelux"
          },
          "bankAccountId": {
            "type": "string",
            "format": "uuid",
            "title": "Bankaccountid"
          },
          "rail": {
            "$ref": "#/components/schemas/BankRail"
          },
          "paymentRail": {
            "type": "string",
            "title": "Paymentrail"
          },
          "fromAmount": {
            "type": "string",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "title": "Fromamount"
          },
          "fromCurrency": {
            "type": "string",
            "title": "Fromcurrency"
          },
          "toAmount": {
            "type": "string",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "title": "Toamount"
          },
          "toCurrency": {
            "type": "string",
            "title": "Tocurrency",
            "default": "USDC"
          },
          "feeAmount": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Feeamount"
          },
          "feeCurrency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Feecurrency"
          },
          "rate": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rate"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "title": "Expiresat"
          }
        },
        "type": "object",
        "required": [
          "quoteId",
          "bankAccountId",
          "rail",
          "paymentRail",
          "fromAmount",
          "fromCurrency",
          "toAmount",
          "expiresAt"
        ],
        "title": "BankPayinQuoteResponse",
        "description": "Swipelux payin quote response normalized for bank payins."
      },
      "BankPayinQuoteSubmitRequest": {
        "properties": {
          "quoteId": {
            "type": "string",
            "title": "Quoteid"
          }
        },
        "type": "object",
        "required": [
          "quoteId"
        ],
        "title": "BankPayinQuoteSubmitRequest",
        "description": "Submit a previously created Swipelux bank payin quote."
      },
      "BankPayinQuoteSubmitResponse": {
        "properties": {
          "quoteId": {
            "type": "string",
            "title": "Quoteid"
          },
          "bankAccountId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bankaccountid"
          },
          "resource": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resource"
          },
          "recipientDetails": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IBANAccountDetails-Output"
              },
              {
                "$ref": "#/components/schemas/USExternalAccountDetails-Output"
              },
              {
                "$ref": "#/components/schemas/SwiftAccountDetails-Output"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipientdetails"
          }
        },
        "type": "object",
        "required": [
          "quoteId"
        ],
        "title": "BankPayinQuoteSubmitResponse",
        "description": "Swipelux payin instructions returned after quote submit."
      },
      "BankPreApproveResponse": {
        "properties": {
          "kycUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Kycurl"
          },
          "kycStatus": {
            "$ref": "#/components/schemas/KycStatus",
            "default": "not_started"
          },
          "requirePhoneNumber": {
            "type": "boolean",
            "title": "Requirephonenumber",
            "default": false
          },
          "requireAddress": {
            "type": "boolean",
            "title": "Requireaddress",
            "default": false
          },
          "requireKyb": {
            "type": "boolean",
            "title": "Requirekyb",
            "default": false
          }
        },
        "type": "object",
        "title": "BankPreApproveResponse",
        "description": "Read-only KYC info for a rail. Does not mutate Bank rows."
      },
      "BankRail": {
        "type": "string",
        "enum": [
          "uaefts_named-zand",
          "ach_pooled-hsbc",
          "ach_named-citi",
          "ach_named-jpmorgan_chase",
          "ach_named-cfsb",
          "fedwire_pooled-hsbc",
          "fedwire_pooled-jpmorgan_chase",
          "fedwire_pooled-cfsb",
          "fedwire_named-hsbc",
          "fedwire_named-citi",
          "fedwire_named-jpmorgan_chase",
          "fedwire_named-cfsb",
          "sepa_pooled-zen",
          "sepa_named-zen",
          "swift_pooled-hsbc",
          "swift_named-hsbc"
        ],
        "title": "BankRail",
        "description": "Bank account route: provider rail + bank id (`{rail}-{bank}`)."
      },
      "BankRequestedRailSettings": {
        "properties": {
          "pooled": {
            "type": "boolean",
            "title": "Pooled",
            "default": false
          },
          "named": {
            "type": "boolean",
            "title": "Named",
            "default": false
          }
        },
        "type": "object",
        "title": "BankRequestedRailSettings",
        "description": "User interest in a bank rail group."
      },
      "BankRequestedRails": {
        "properties": {
          "us": {
            "$ref": "#/components/schemas/BankRequestedRailSettings"
          },
          "swift": {
            "$ref": "#/components/schemas/BankRequestedRailSettings"
          },
          "eu": {
            "$ref": "#/components/schemas/BankRequestedRailSettings"
          },
          "uae": {
            "$ref": "#/components/schemas/BankRequestedRailSettings"
          }
        },
        "type": "object",
        "title": "BankRequestedRails",
        "description": "Rails the user is interested in opening."
      },
      "BankRequestedSettings-Input": {
        "properties": {
          "rails": {
            "$ref": "#/components/schemas/BankRequestedRails"
          }
        },
        "type": "object",
        "title": "BankRequestedSettings",
        "description": "User bank-rail interest settings."
      },
      "BankRequestedSettings-Output": {
        "properties": {
          "rails": {
            "$ref": "#/components/schemas/BankRequestedRails"
          }
        },
        "type": "object",
        "title": "BankRequestedSettings",
        "description": "User bank-rail interest settings."
      },
      "BankResponse": {
        "properties": {
          "rail": {
            "$ref": "#/components/schemas/BankRail"
          },
          "bankName": {
            "type": "string",
            "title": "Bankname"
          },
          "country": {
            "type": "string",
            "title": "Country"
          },
          "currency": {
            "type": "string",
            "title": "Currency"
          },
          "type": {
            "$ref": "#/components/schemas/FiatPaymentType"
          },
          "method": {
            "$ref": "#/components/schemas/FiatPaymentType"
          },
          "methods": {
            "items": {
              "$ref": "#/components/schemas/FiatPaymentType"
            },
            "type": "array",
            "title": "Methods"
          },
          "pooled": {
            "type": "boolean",
            "title": "Pooled"
          },
          "compliance": {
            "type": "integer",
            "title": "Compliance"
          },
          "bankIcon": {
            "type": "string",
            "title": "Bankicon"
          },
          "depositFee": {
            "type": "number",
            "title": "Depositfee"
          },
          "timeToOpen": {
            "$ref": "#/components/schemas/BankTimeToOpen"
          },
          "status": {
            "$ref": "#/components/schemas/IBANStatus"
          },
          "accountHolderBusinessName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderbusinessname"
          },
          "accountHolderFirstName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderfirstname"
          },
          "accountHolderLastName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderlastname"
          },
          "ibanData": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IBANAccountDetails-Output"
              },
              {
                "$ref": "#/components/schemas/USExternalAccountDetails-Output"
              },
              {
                "$ref": "#/components/schemas/SwiftAccountDetails-Output"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ibandata"
          },
          "id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Id"
          },
          "externalAccountId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Externalaccountid"
          },
          "createdAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "rail",
          "bankName",
          "country",
          "currency",
          "type",
          "method",
          "methods",
          "pooled",
          "compliance",
          "bankIcon",
          "depositFee",
          "timeToOpen",
          "status"
        ],
        "title": "BankResponse",
        "description": "Bank row as returned to clients.\n\nMerges static rail metadata (from BANK_INFO) with per-user state. For rails\nthe user hasn't activated yet, ``id`` / ``external_account_id`` / ``created_at``\nare ``None`` and ``status`` is ``not_started``."
      },
      "BankTimeToOpen": {
        "type": "string",
        "enum": [
          "<1 day",
          "1-2 days",
          "2-3 days",
          "5-7 days"
        ],
        "title": "BankTimeToOpen",
        "description": "Expected wait time before a bank rail becomes usable."
      },
      "BankValidationRequest": {
        "properties": {
          "bankType": {
            "type": "string",
            "title": "Banktype"
          },
          "country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country"
          },
          "bankName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bankname"
          },
          "iban": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Iban"
          },
          "bic": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bic"
          },
          "routingNumber": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Routingnumber"
          }
        },
        "type": "object",
        "required": [
          "bankType"
        ],
        "title": "BankValidationRequest",
        "description": "Request to prevalidate bank details before creating a contact."
      },
      "BankValidationResponse": {
        "properties": {
          "ok": {
            "type": "boolean",
            "title": "Ok"
          },
          "errors": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Errors"
          },
          "warnings": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Warnings"
          },
          "lookups": {
            "additionalProperties": true,
            "type": "object",
            "title": "Lookups"
          }
        },
        "type": "object",
        "required": [
          "ok"
        ],
        "title": "BankValidationResponse",
        "description": "Result of bank detail validation."
      },
      "BanksListResponse": {
        "properties": {
          "banks": {
            "items": {
              "$ref": "#/components/schemas/BankResponse"
            },
            "type": "array",
            "title": "Banks"
          },
          "allOptions": {
            "items": {
              "$ref": "#/components/schemas/BankResponse"
            },
            "type": "array",
            "title": "Alloptions"
          },
          "rails": {
            "$ref": "#/components/schemas/BankRequestedRails"
          }
        },
        "type": "object",
        "required": [
          "banks",
          "rails"
        ],
        "title": "BanksListResponse",
        "description": "List bank rails plus user's requested rail preferences."
      },
      "BatchContractInvoiceRequest": {
        "properties": {
          "contractId": {
            "type": "string",
            "format": "uuid",
            "title": "Contractid"
          },
          "items": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "minItems": 1,
            "title": "Items"
          },
          "period": {
            "type": "integer",
            "minimum": 0,
            "title": "Period"
          },
          "memo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Memo"
          },
          "finalize": {
            "type": "boolean",
            "title": "Finalize",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "contractId",
          "items",
          "period"
        ],
        "title": "BatchContractInvoiceRequest",
        "description": "Per-contract invoice options for batch invoicing.\n\nA call without ``finalize`` creates the period invoice as a DRAFT (or\nupdates its items if a DRAFT already exists). Both the client and the\ncontractor may edit a DRAFT. Setting ``finalize=True`` additionally moves\nthe invoice to SENT, generates the PDF and emails the client — only the\nclient (contract owner) is allowed to finalize."
      },
      "BatchInvoiceResult": {
        "properties": {
          "contractId": {
            "type": "string",
            "format": "uuid",
            "title": "Contractid"
          },
          "counterpartyId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Counterpartyid"
          },
          "periodNumber": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Periodnumber"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "invoice": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/InvoiceResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "detail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Detail"
          }
        },
        "type": "object",
        "required": [
          "contractId",
          "status"
        ],
        "title": "BatchInvoiceResult"
      },
      "BatchInvoicingRequest": {
        "items": {
          "$ref": "#/components/schemas/BatchContractInvoiceRequest"
        },
        "type": "array",
        "minItems": 1,
        "title": "BatchInvoicingRequest",
        "description": "Generate invoices for multiple contracts."
      },
      "BatchInvoicingResponse": {
        "properties": {
          "results": {
            "items": {
              "$ref": "#/components/schemas/BatchInvoiceResult"
            },
            "type": "array",
            "title": "Results"
          }
        },
        "type": "object",
        "title": "BatchInvoicingResponse"
      },
      "BicInfoResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Address"
          },
          "postcode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Postcode"
          },
          "branch_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Branch Name"
          },
          "branch_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Branch Code"
          },
          "country": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FincodesCountry"
              },
              {
                "type": "null"
              }
            ]
          },
          "city": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FincodesCity"
              },
              {
                "type": "null"
              }
            ]
          },
          "bank": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FincodesBank"
              },
              {
                "type": "null"
              }
            ]
          },
          "parsed_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ],
            "description": "Parse address fields into UserAddress format.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "id",
          "parsed_address"
        ],
        "title": "BicInfoResponse",
        "description": "BIC lookup response from Fincodes API."
      },
      "BusinessUserCreateRequest-Input": {
        "properties": {
          "phone": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 20
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "contactInfo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contactinfo"
          },
          "jurisdiction": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CountryCode"
              },
              {
                "type": "null"
              }
            ]
          },
          "entityType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FiatEntityType"
              },
              {
                "type": "null"
              }
            ]
          },
          "entityTypeDescription": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entitytypedescription"
          },
          "entityName": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Entityname"
          },
          "tradeName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tradename"
          },
          "registrationNumber": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Registrationnumber"
          },
          "incorporationDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Incorporationdate"
          },
          "taxNumber": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Taxnumber"
          },
          "businessDescription": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 10
              },
              {
                "type": "null"
              }
            ],
            "title": "Businessdescription"
          },
          "businessType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FiatBusinessType"
              },
              {
                "type": "null"
              }
            ]
          },
          "verifierRole": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FiatVerifierRole"
              },
              {
                "type": "null"
              }
            ]
          },
          "businessTypeDescription": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Businesstypedescription"
          },
          "websites": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Websites"
          },
          "phoneNumber": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phonenumber"
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FiatBusinessAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "sourceOfFunds": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FiatSourceOfFunds"
              },
              {
                "type": "null"
              }
            ]
          },
          "sourceOfFundDescription": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sourceoffunddescription"
          },
          "expectedMonthlyVolumeUsd": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "title": "Expectedmonthlyvolumeusd"
          },
          "purposeOfFunds": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FiatPurposeOfFunds"
              },
              {
                "type": "null"
              }
            ]
          },
          "purposeOfFundsDescription": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Purposeoffundsdescription"
          },
          "flowOfFundsDescription": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 10
              },
              {
                "type": "null"
              }
            ],
            "title": "Flowoffundsdescription"
          },
          "sanctionedCountryOperations": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sanctionedcountryoperations"
          },
          "highRiskActivities": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Highriskactivities"
          },
          "operatingCountries": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/CountryCode"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Operatingcountries"
          },
          "handlesCustomerFunds": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Handlescustomerfunds"
          },
          "complianceScreeningDescription": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Compliancescreeningdescription"
          },
          "estimatedAnnualRevenue": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimatedannualrevenue"
          },
          "depositMethods": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Depositmethods"
          }
        },
        "type": "object",
        "title": "BusinessUserCreateRequest",
        "description": "Request schema for creating/updating a business user (all fields optional for partial updates)."
      },
      "BusinessUserCreateRequest-Output": {
        "properties": {
          "phone": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 20
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "contactInfo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contactinfo"
          },
          "jurisdiction": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CountryCode"
              },
              {
                "type": "null"
              }
            ]
          },
          "entityType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FiatEntityType"
              },
              {
                "type": "null"
              }
            ]
          },
          "entityTypeDescription": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entitytypedescription"
          },
          "entityName": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Entityname"
          },
          "tradeName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tradename"
          },
          "registrationNumber": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Registrationnumber"
          },
          "incorporationDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Incorporationdate"
          },
          "taxNumber": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Taxnumber"
          },
          "businessDescription": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 10
              },
              {
                "type": "null"
              }
            ],
            "title": "Businessdescription"
          },
          "businessType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FiatBusinessType"
              },
              {
                "type": "null"
              }
            ]
          },
          "verifierRole": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FiatVerifierRole"
              },
              {
                "type": "null"
              }
            ]
          },
          "businessTypeDescription": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Businesstypedescription"
          },
          "websites": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Websites"
          },
          "phoneNumber": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phonenumber"
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FiatBusinessAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "sourceOfFunds": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FiatSourceOfFunds"
              },
              {
                "type": "null"
              }
            ]
          },
          "sourceOfFundDescription": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sourceoffunddescription"
          },
          "expectedMonthlyVolumeUsd": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "title": "Expectedmonthlyvolumeusd"
          },
          "purposeOfFunds": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FiatPurposeOfFunds"
              },
              {
                "type": "null"
              }
            ]
          },
          "purposeOfFundsDescription": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Purposeoffundsdescription"
          },
          "flowOfFundsDescription": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 10
              },
              {
                "type": "null"
              }
            ],
            "title": "Flowoffundsdescription"
          },
          "sanctionedCountryOperations": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sanctionedcountryoperations"
          },
          "highRiskActivities": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Highriskactivities"
          },
          "operatingCountries": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/CountryCode"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Operatingcountries"
          },
          "handlesCustomerFunds": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Handlescustomerfunds"
          },
          "complianceScreeningDescription": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Compliancescreeningdescription"
          },
          "estimatedAnnualRevenue": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimatedannualrevenue"
          },
          "depositMethods": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Depositmethods"
          }
        },
        "type": "object",
        "title": "BusinessUserCreateRequest",
        "description": "Request schema for creating/updating a business user (all fields optional for partial updates)."
      },
      "CardData": {
        "properties": {
          "nameOnCard": {
            "type": "string",
            "title": "Nameoncard"
          },
          "paymentSystem": {
            "type": "string",
            "title": "Paymentsystem",
            "description": "Visa, Mastercard, etc."
          },
          "lastFour": {
            "type": "string",
            "title": "Lastfour",
            "description": "Last 4 digits of card number"
          },
          "expiryDate": {
            "type": "string",
            "title": "Expirydate",
            "description": "MM/YY format"
          },
          "format": {
            "$ref": "#/components/schemas/CardFormat"
          },
          "cardName": {
            "type": "string",
            "title": "Cardname",
            "description": "Display name like 'Visa **** 1234'"
          }
        },
        "type": "object",
        "required": [
          "nameOnCard",
          "paymentSystem",
          "lastFour",
          "expiryDate",
          "format",
          "cardName"
        ],
        "title": "CardData",
        "description": "Card display data (non-sensitive)."
      },
      "CardDetailsResponse": {
        "properties": {
          "cardNumber": {
            "type": "string",
            "title": "Cardnumber",
            "description": "Full card number (PAN)"
          },
          "cvv": {
            "type": "string",
            "title": "Cvv"
          },
          "expiryDate": {
            "type": "string",
            "title": "Expirydate"
          }
        },
        "type": "object",
        "required": [
          "cardNumber",
          "cvv",
          "expiryDate"
        ],
        "title": "CardDetailsResponse",
        "description": "Sensitive card details."
      },
      "CardFormat": {
        "type": "string",
        "enum": [
          "virtual",
          "physical"
        ],
        "title": "CardFormat",
        "description": "Card format."
      },
      "CardLimit": {
        "properties": {
          "dailyLimit": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dailylimit",
            "description": "Daily spending limit (-1 for unlimited)"
          },
          "dailyUsage": {
            "type": "number",
            "title": "Dailyusage",
            "description": "Amount spent today",
            "default": 0
          },
          "monthlyLimit": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Monthlylimit",
            "description": "Monthly spending limit (-1 for unlimited)"
          },
          "monthlyUsage": {
            "type": "number",
            "title": "Monthlyusage",
            "description": "Amount spent this month",
            "default": 0
          },
          "lifetimeLimit": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lifetimelimit",
            "description": "Lifetime spending limit (-1 for unlimited)"
          },
          "lifetimeUsage": {
            "type": "number",
            "title": "Lifetimeusage",
            "description": "Total amount spent",
            "default": 0
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "EUR"
          }
        },
        "type": "object",
        "title": "CardLimit",
        "description": "Card spending limit."
      },
      "CardResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "walletAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Walletaddress",
            "description": "Linked wallet address"
          },
          "status": {
            "$ref": "#/components/schemas/CardStatus",
            "default": "pending"
          },
          "limit": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CardLimit"
              },
              {
                "type": "null"
              }
            ]
          },
          "cardData": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CardData"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Createdat"
          },
          "activated": {
            "type": "boolean",
            "title": "Activated",
            "description": "True if card details have been revealed and cached",
            "default": false
          },
          "billingAddress": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "dailySpend": {
            "type": "number",
            "title": "Dailyspend",
            "description": "Total spent today on this card (from fiat_transfers)",
            "default": 0
          },
          "label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label",
            "description": "User-defined card label/nickname"
          }
        },
        "type": "object",
        "required": [
          "id"
        ],
        "title": "CardResponse",
        "description": "Card response - universal format for any provider."
      },
      "CardRevealRequest": {
        "properties": {
          "messageSignature": {
            "type": "string",
            "title": "Messagesignature",
            "description": "Wallet signature of confirmation message"
          },
          "nonce": {
            "type": "integer",
            "title": "Nonce",
            "description": "Unix timestamp used in the signed message (valid 5 min)"
          }
        },
        "type": "object",
        "required": [
          "messageSignature",
          "nonce"
        ],
        "title": "CardRevealRequest",
        "description": "Request to reveal card details. Requires wallet signature."
      },
      "CardStatus": {
        "type": "string",
        "enum": [
          "pending",
          "active",
          "blocked",
          "closed"
        ],
        "title": "CardStatus",
        "description": "Card status."
      },
      "CardUserRegisterRequest": {
        "properties": {
          "country": {
            "$ref": "#/components/schemas/CountryCode"
          },
          "walletAddress": {
            "type": "string",
            "title": "Walletaddress",
            "description": "EOA wallet address"
          }
        },
        "type": "object",
        "required": [
          "country",
          "walletAddress"
        ],
        "title": "CardUserRegisterRequest",
        "description": "Request to register user for card services."
      },
      "CardsListResponse": {
        "properties": {
          "cards": {
            "items": {
              "$ref": "#/components/schemas/CardResponse"
            },
            "type": "array",
            "title": "Cards"
          },
          "total": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Total"
          },
          "created": {
            "type": "boolean",
            "title": "Created",
            "default": false
          },
          "kycStatus": {
            "$ref": "#/components/schemas/KycStatus",
            "default": "not_started"
          },
          "phoneVerified": {
            "type": "boolean",
            "title": "Phoneverified",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "cards"
        ],
        "title": "CardsListResponse",
        "description": "Paginated list of cards."
      },
      "CardsPreApproveResponse": {
        "properties": {
          "kycUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Kycurl"
          },
          "kycStatus": {
            "$ref": "#/components/schemas/KycStatus",
            "default": "not_started"
          },
          "requirePhoneNumber": {
            "type": "boolean",
            "title": "Requirephonenumber",
            "default": false
          },
          "requireAddress": {
            "type": "boolean",
            "title": "Requireaddress",
            "default": false
          }
        },
        "type": "object",
        "title": "CardsPreApproveResponse",
        "description": "Pre-flight info for issuing Wirex cards."
      },
      "ChangeRoleRequest": {
        "properties": {
          "userId": {
            "type": "string",
            "format": "uuid",
            "title": "Userid"
          },
          "targetRole": {
            "type": "string",
            "pattern": "^(kyc|kyb)$",
            "title": "Targetrole",
            "description": "Target role: 'kyc' (consumer) or 'kyb' (business)"
          }
        },
        "type": "object",
        "required": [
          "userId",
          "targetRole"
        ],
        "title": "ChangeRoleRequest"
      },
      "ChatCreateRequest": {
        "properties": {
          "text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Text"
          }
        },
        "type": "object",
        "title": "ChatCreateRequest",
        "description": "Create (or get) the user's internal chat."
      },
      "ChatMessageRequest": {
        "properties": {
          "text": {
            "type": "string",
            "title": "Text"
          },
          "documentIds": {
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array",
            "title": "Documentids"
          }
        },
        "type": "object",
        "required": [
          "text"
        ],
        "title": "ChatMessageRequest",
        "description": "Send a message in the chat."
      },
      "ChatMessageResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "role": {
            "type": "string",
            "title": "Role"
          },
          "senderName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sendername"
          },
          "avatarUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatarurl"
          },
          "text": {
            "type": "string",
            "title": "Text"
          },
          "documentIds": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Documentids"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "role",
          "text",
          "createdAt"
        ],
        "title": "ChatMessageResponse",
        "description": "Single message in a chat."
      },
      "ChatPlatform": {
        "type": "string",
        "enum": [
          "slack",
          "email",
          "telegram",
          "hevn",
          "swipelux_chat"
        ],
        "title": "ChatPlatform",
        "description": "Chat platform."
      },
      "ChatRole": {
        "type": "string",
        "enum": [
          "user",
          "hevn",
          "swipelux",
          "align",
          "kyb_agent"
        ],
        "title": "ChatRole",
        "description": "Support message sender role."
      },
      "ChatType": {
        "type": "string",
        "enum": [
          "support",
          "compliance",
          "swipelux",
          "align",
          "kyb_agent"
        ],
        "title": "ChatType",
        "description": "Chat type — determines who the conversation is with."
      },
      "ContactCreateRequest": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1,
            "title": "Name",
            "default": ""
          },
          "currency": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 4,
                "minLength": 3
              },
              {
                "type": "null"
              }
            ],
            "title": "Currency",
            "description": "Currency override"
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "crypto": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ContactCryptoInput"
              },
              {
                "type": "null"
              }
            ]
          },
          "account": {
            "anyOf": [
              {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/OnchainAccountInput"
                  },
                  {
                    "$ref": "#/components/schemas/EmailAccountInput"
                  },
                  {
                    "$ref": "#/components/schemas/SepaAccountInput"
                  },
                  {
                    "$ref": "#/components/schemas/SwiftAccountInput"
                  },
                  {
                    "$ref": "#/components/schemas/AchAccountInput"
                  },
                  {
                    "$ref": "#/components/schemas/UaeAccountInput"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Account",
            "description": "Account details"
          },
          "iban": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IBANAccountDetails-Input"
              },
              {
                "$ref": "#/components/schemas/USExternalAccountDetails-Input"
              },
              {
                "$ref": "#/components/schemas/SwiftAccountDetails-Input"
              },
              {
                "type": "null"
              }
            ],
            "title": "Iban",
            "description": "Bank account details in the same format as /banks ibanData"
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "relationship": {
            "$ref": "#/components/schemas/app__schemas__routers__user__contact__ContactRelationship",
            "default": "external"
          }
        },
        "type": "object",
        "title": "ContactCreateRequest",
        "description": "Request to create a contact."
      },
      "ContactCryptoInput": {
        "properties": {
          "chain": {
            "$ref": "#/components/schemas/OneClickChain"
          },
          "token": {
            "type": "string",
            "title": "Token"
          },
          "address": {
            "type": "string",
            "title": "Address"
          }
        },
        "type": "object",
        "required": [
          "chain",
          "token",
          "address"
        ],
        "title": "ContactCryptoInput",
        "description": "Crypto contact input."
      },
      "ContactCryptoResponse": {
        "properties": {
          "chain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Chain"
          },
          "token": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Token"
          },
          "address": {
            "type": "string",
            "title": "Address"
          }
        },
        "type": "object",
        "required": [
          "address"
        ],
        "title": "ContactCryptoResponse",
        "description": "Crypto payment details for contact."
      },
      "ContactLinkedUserResponse": {
        "properties": {
          "avatar": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatar"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          }
        },
        "type": "object",
        "title": "ContactLinkedUserResponse",
        "description": "Linked HEVN user preview for contact."
      },
      "ContactListResponse": {
        "properties": {
          "contacts": {
            "items": {
              "$ref": "#/components/schemas/ContactResponse"
            },
            "type": "array",
            "title": "Contacts"
          },
          "total": {
            "type": "integer",
            "title": "Total"
          }
        },
        "type": "object",
        "required": [
          "contacts",
          "total"
        ],
        "title": "ContactListResponse",
        "description": "List of contacts response."
      },
      "ContactPreviewResponse": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "icon": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Icon"
          },
          "activated": {
            "type": "boolean",
            "title": "Activated",
            "default": false
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "createdAt"
        ],
        "title": "ContactPreviewResponse",
        "description": "Lightweight user preview for contact lookup."
      },
      "ContactResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "userId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Userid"
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "relationship": {
            "$ref": "#/components/schemas/app__schemas__routers__user__contact__ContactRelationship"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "iban": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IBANAccountDetails-Output"
              },
              {
                "$ref": "#/components/schemas/USExternalAccountDetails-Output"
              },
              {
                "$ref": "#/components/schemas/SwiftAccountDetails-Output"
              },
              {
                "type": "null"
              }
            ],
            "title": "Iban"
          },
          "crypto": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ContactCryptoResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "user": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ContactLinkedUserResponse"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "relationship",
          "createdAt"
        ],
        "title": "ContactResponse",
        "description": "Contact response with full structure for transfer."
      },
      "ContactUpdateRequest": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "userId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Userid"
          },
          "walletAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Walletaddress"
          },
          "chainId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Chainid"
          },
          "currency": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 3,
                "minLength": 3
              },
              {
                "type": "null"
              }
            ],
            "title": "Currency"
          },
          "priorityMethod": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TransactionType"
              },
              {
                "type": "null"
              }
            ]
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "relationship": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__schemas__routers__user__contact__ContactRelationship"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "title": "ContactUpdateRequest",
        "description": "Request to update a contact."
      },
      "ContactWalletResponse": {
        "properties": {
          "address": {
            "type": "string",
            "title": "Address"
          },
          "chainId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Chainid"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "EUR"
          },
          "internal": {
            "type": "boolean",
            "title": "Internal",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "address"
        ],
        "title": "ContactWalletResponse",
        "description": "Wallet payment method block used by invoice/payment method schemas."
      },
      "ContractDocumentTemplateType": {
        "type": "string",
        "enum": [
          "employer",
          "employment",
          "service",
          "contractor",
          "default_contractor",
          "custom",
          "nda",
          "vendor",
          "milestone",
          "msa"
        ],
        "title": "ContractDocumentTemplateType",
        "description": "Markdown contract template type."
      },
      "ContractLastInvoice": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "clientId": {
            "type": "string",
            "format": "uuid",
            "title": "Clientid"
          },
          "contractorId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contractorid"
          },
          "contractorEmail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contractoremail"
          },
          "clientEmail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Clientemail"
          },
          "contractId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contractid"
          },
          "onchainTransactionId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Onchaintransactionid"
          },
          "invoiceDocumentId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invoicedocumentid"
          },
          "amount": {
            "type": "string",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "title": "Amount"
          },
          "discount": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discount"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "comment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment"
          },
          "emailMessage": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Emailmessage"
          },
          "invoiceNumber": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invoicenumber"
          },
          "issuedDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Issueddate"
          },
          "dueDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duedate"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "paidAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Paidat"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "title": "Updatedat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "clientId",
          "amount",
          "currency",
          "status",
          "createdAt",
          "updatedAt"
        ],
        "title": "ContractLastInvoice",
        "description": "Flat last invoice data embedded in contract responses."
      },
      "ContractListResponse": {
        "properties": {
          "contracts": {
            "items": {
              "$ref": "#/components/schemas/ContractResponse"
            },
            "type": "array",
            "title": "Contracts"
          }
        },
        "type": "object",
        "required": [
          "contracts"
        ],
        "title": "ContractListResponse",
        "description": "List of contracts."
      },
      "ContractParty": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "displayName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Displayname"
          },
          "firstName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Firstname"
          },
          "lastName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastname"
          },
          "entityName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entityname"
          },
          "avatarUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatarurl"
          },
          "isBusiness": {
            "type": "boolean",
            "title": "Isbusiness",
            "default": false
          },
          "address": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Address"
          }
        },
        "type": "object",
        "required": [
          "id"
        ],
        "title": "ContractParty",
        "description": "Minimal user data embedded in contract responses."
      },
      "ContractPeriod": {
        "type": "string",
        "enum": [
          "weekly",
          "biweekly",
          "monthly",
          "quarterly",
          "yearly"
        ],
        "title": "ContractPeriod",
        "description": "Recurring billing period of a contract."
      },
      "ContractResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "clientId": {
            "type": "string",
            "format": "uuid",
            "title": "Clientid"
          },
          "contractorId": {
            "type": "string",
            "format": "uuid",
            "title": "Contractorid"
          },
          "client": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ContractParty"
              },
              {
                "type": "null"
              }
            ]
          },
          "contractor": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ContractParty"
              },
              {
                "type": "null"
              }
            ]
          },
          "label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "documentId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Documentid"
          },
          "documentName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Documentname"
          },
          "documentFileName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Documentfilename"
          },
          "documentDownloadLink": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Documentdownloadlink"
          },
          "type": {
            "$ref": "#/components/schemas/ContractType"
          },
          "status": {
            "$ref": "#/components/schemas/ContractStatus"
          },
          "amount": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amount"
          },
          "currency": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Currency"
              },
              {
                "type": "null"
              }
            ]
          },
          "period": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Period"
          },
          "activationAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Activationat"
          },
          "expirationAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expirationat"
          },
          "signatureRequestId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Signaturerequestid"
          },
          "signed": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Signed"
          },
          "clientAcceptance": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Clientacceptance"
          },
          "contractorAcceptance": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contractoracceptance"
          },
          "creatorId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Creatorid"
          },
          "fields": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fields"
          },
          "priorityMethods": {
            "items": {
              "$ref": "#/components/schemas/TransactionType"
            },
            "type": "array",
            "title": "Prioritymethods"
          },
          "paymentMethods": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Paymentmethods"
          },
          "lastInvoice": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ContractLastInvoice"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "title": "Updatedat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "clientId",
          "contractorId",
          "type",
          "status",
          "createdAt",
          "updatedAt"
        ],
        "title": "ContractResponse",
        "description": "Contract response."
      },
      "ContractStatus": {
        "type": "string",
        "enum": [
          "pending_approval_by_contractor",
          "pending_approval_by_client",
          "active",
          "completed",
          "cancelled",
          "paused"
        ],
        "title": "ContractStatus",
        "description": "Contract status."
      },
      "ContractType": {
        "type": "string",
        "enum": [
          "service",
          "employment",
          "nda",
          "contractor",
          "default_contractor",
          "custom",
          "vendor",
          "milestone",
          "msa",
          "other"
        ],
        "title": "ContractType",
        "description": "Contract type."
      },
      "ContractorAgreementData": {
        "properties": {
          "contractorName": {
            "type": "string",
            "title": "Contractorname"
          },
          "contractorAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contractoraddress"
          },
          "contractorEmail": {
            "type": "string",
            "title": "Contractoremail"
          },
          "contractorCountry": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contractorcountry"
          },
          "taxId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Taxid"
          },
          "effectiveDate": {
            "type": "string",
            "title": "Effectivedate"
          },
          "sowEffectiveDate": {
            "type": "string",
            "title": "Soweffectivedate"
          },
          "contractType": {
            "type": "string",
            "title": "Contracttype",
            "default": "Fixed rate"
          },
          "startDate": {
            "type": "string",
            "title": "Startdate"
          },
          "jobTitle": {
            "type": "string",
            "title": "Jobtitle"
          },
          "scopeDescription": {
            "type": "string",
            "title": "Scopedescription"
          },
          "paymentCurrency": {
            "type": "string",
            "title": "Paymentcurrency",
            "default": "USD - US Dollar"
          },
          "paymentRate": {
            "type": "string",
            "title": "Paymentrate"
          },
          "firstPaymentDate": {
            "type": "string",
            "title": "Firstpaymentdate"
          },
          "firstPaymentAmount": {
            "type": "string",
            "title": "Firstpaymentamount",
            "default": "Full amount"
          },
          "invoiceCycle": {
            "type": "string",
            "title": "Invoicecycle",
            "default": "Monthly, ends the last day of the month"
          },
          "paymentDue": {
            "type": "string",
            "title": "Paymentdue",
            "default": "Same day"
          }
        },
        "type": "object",
        "required": [
          "contractorName",
          "contractorEmail",
          "effectiveDate",
          "sowEffectiveDate",
          "startDate",
          "jobTitle",
          "scopeDescription",
          "paymentRate",
          "firstPaymentDate"
        ],
        "title": "ContractorAgreementData",
        "description": "Data for filling Contractor Agreement template."
      },
      "ContractorContractPreviewFields": {
        "properties": {
          "effectiveDate": {
            "type": "string",
            "title": "Effectivedate"
          },
          "clientName": {
            "type": "string",
            "title": "Clientname"
          },
          "clientEntityType": {
            "type": "string",
            "title": "Cliententitytype"
          },
          "clientAddress": {
            "type": "string",
            "title": "Clientaddress"
          },
          "clientEmail": {
            "type": "string",
            "title": "Clientemail"
          },
          "clientJurisdiction": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Clientjurisdiction"
          },
          "clientRegistrationNumber": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Clientregistrationnumber"
          },
          "contractorName": {
            "type": "string",
            "title": "Contractorname"
          },
          "contractorEntityType": {
            "type": "string",
            "title": "Contractorentitytype"
          },
          "contractorAddress": {
            "type": "string",
            "title": "Contractoraddress"
          },
          "contractorEmail": {
            "type": "string",
            "title": "Contractoremail"
          },
          "contractorJurisdiction": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contractorjurisdiction"
          },
          "contractorRegistrationNumber": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contractorregistrationnumber"
          },
          "governingLaw": {
            "type": "string",
            "title": "Governinglaw"
          },
          "clientSignerName": {
            "type": "string",
            "title": "Clientsignername"
          },
          "contractorSignerName": {
            "type": "string",
            "title": "Contractorsignername"
          },
          "clientSignatureDate": {
            "type": "string",
            "title": "Clientsignaturedate"
          },
          "contractorSignatureDate": {
            "type": "string",
            "title": "Contractorsignaturedate"
          }
        },
        "type": "object",
        "required": [
          "effectiveDate",
          "clientName",
          "clientEntityType",
          "clientAddress",
          "clientEmail",
          "contractorName",
          "contractorEntityType",
          "contractorAddress",
          "contractorEmail",
          "governingLaw",
          "clientSignerName",
          "contractorSignerName",
          "clientSignatureDate",
          "contractorSignatureDate"
        ],
        "title": "ContractorContractPreviewFields"
      },
      "CorpDocumentType": {
        "type": "string",
        "enum": [
          "contractor_agreement"
        ],
        "title": "CorpDocumentType",
        "description": "Supported document types for e-signing."
      },
      "CountryCode": {
        "type": "string",
        "enum": [
          "AF",
          "AX",
          "AL",
          "DZ",
          "AS",
          "AD",
          "AO",
          "AI",
          "AQ",
          "AG",
          "AR",
          "AM",
          "AW",
          "AU",
          "AT",
          "AZ",
          "BS",
          "BH",
          "BD",
          "BB",
          "BY",
          "BE",
          "BZ",
          "BJ",
          "BM",
          "BT",
          "BO",
          "BQ",
          "BA",
          "BW",
          "BV",
          "BR",
          "IO",
          "BN",
          "BG",
          "BF",
          "BI",
          "CV",
          "KH",
          "CM",
          "CA",
          "KY",
          "CF",
          "TD",
          "CL",
          "CN",
          "CX",
          "CC",
          "CO",
          "KM",
          "CG",
          "CD",
          "CK",
          "CR",
          "CI",
          "HR",
          "CU",
          "CW",
          "CY",
          "CZ",
          "DK",
          "DJ",
          "DM",
          "DO",
          "EC",
          "EG",
          "SV",
          "GQ",
          "ER",
          "EE",
          "SZ",
          "ET",
          "FK",
          "FO",
          "FJ",
          "FI",
          "FR",
          "GF",
          "PF",
          "TF",
          "GA",
          "GM",
          "GE",
          "DE",
          "GH",
          "GI",
          "GR",
          "GL",
          "GD",
          "GP",
          "GU",
          "GT",
          "GG",
          "GN",
          "GW",
          "GY",
          "HT",
          "HM",
          "VA",
          "HN",
          "HK",
          "HU",
          "IS",
          "IN",
          "ID",
          "IR",
          "IQ",
          "IE",
          "IM",
          "IL",
          "IT",
          "JM",
          "JP",
          "JE",
          "JO",
          "KZ",
          "KE",
          "KI",
          "KP",
          "KR",
          "KW",
          "KG",
          "LA",
          "LV",
          "LB",
          "LS",
          "LR",
          "LY",
          "LI",
          "LT",
          "LU",
          "MO",
          "MG",
          "MW",
          "MY",
          "MV",
          "ML",
          "MT",
          "MH",
          "MQ",
          "MR",
          "MU",
          "YT",
          "MX",
          "FM",
          "MD",
          "MC",
          "MN",
          "ME",
          "MS",
          "MA",
          "MZ",
          "MM",
          "NA",
          "NR",
          "NP",
          "NL",
          "NC",
          "NZ",
          "NI",
          "NE",
          "NG",
          "NU",
          "NF",
          "MK",
          "MP",
          "NO",
          "OM",
          "PK",
          "PW",
          "PS",
          "PA",
          "PG",
          "PY",
          "PE",
          "PH",
          "PN",
          "PL",
          "PT",
          "PR",
          "QA",
          "RE",
          "RO",
          "RU",
          "RW",
          "BL",
          "SH",
          "KN",
          "LC",
          "MF",
          "PM",
          "VC",
          "WS",
          "SM",
          "ST",
          "SA",
          "SN",
          "RS",
          "SC",
          "SL",
          "SG",
          "SX",
          "SK",
          "SI",
          "SB",
          "SO",
          "ZA",
          "GS",
          "SS",
          "ES",
          "LK",
          "SD",
          "SR",
          "SJ",
          "SE",
          "CH",
          "SY",
          "TW",
          "TJ",
          "TZ",
          "TH",
          "TL",
          "TG",
          "TK",
          "TO",
          "TT",
          "TN",
          "TR",
          "TM",
          "TC",
          "TV",
          "UG",
          "UA",
          "AE",
          "GB",
          "US",
          "UM",
          "UY",
          "UZ",
          "VU",
          "VE",
          "VN",
          "VG",
          "VI",
          "WF",
          "EH",
          "YE",
          "ZM",
          "ZW"
        ],
        "title": "CountryCode",
        "description": "ISO 3166-1 alpha-2 country codes."
      },
      "CreateChatRequest": {
        "properties": {
          "platform": {
            "$ref": "#/components/schemas/ChatPlatform"
          },
          "type": {
            "$ref": "#/components/schemas/ChatType"
          },
          "externalId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Externalid"
          },
          "subject": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subject"
          },
          "message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Message"
          }
        },
        "type": "object",
        "required": [
          "platform",
          "type"
        ],
        "title": "CreateChatRequest",
        "description": "Create a chat for a user."
      },
      "CreateContractRequest": {
        "properties": {
          "contractorEmail": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 320,
                "minLength": 3
              },
              {
                "type": "null"
              }
            ],
            "title": "Contractoremail"
          },
          "clientEmail": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 320,
                "minLength": 3
              },
              {
                "type": "null"
              }
            ],
            "title": "Clientemail"
          },
          "label": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "type": {
            "$ref": "#/components/schemas/ContractType",
            "default": "service"
          },
          "period": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ContractPeriod"
              },
              {
                "type": "null"
              }
            ]
          },
          "activationAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Activationat"
          },
          "expirationAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expirationat"
          },
          "status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ContractStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "fields": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fields"
          },
          "documentId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Documentid"
          },
          "priorityMethods": {
            "items": {
              "$ref": "#/components/schemas/TransactionType"
            },
            "type": "array",
            "title": "Prioritymethods"
          },
          "paymentMethods": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Paymentmethods"
          },
          "requireClientKyc": {
            "type": "boolean",
            "title": "Requireclientkyc",
            "default": false
          },
          "requireClientW89": {
            "type": "boolean",
            "title": "Requireclientw89",
            "default": false
          },
          "requireContractorKyc": {
            "type": "boolean",
            "title": "Requirecontractorkyc",
            "default": false
          },
          "requireContractorW89": {
            "type": "boolean",
            "title": "Requirecontractorw89",
            "default": false
          }
        },
        "type": "object",
        "title": "CreateContractRequest",
        "description": "Request to create a new contract.\n\nExactly one of ``contractor_email`` or ``client_email`` must be set.\n* ``contractor_email`` — the creator is the **client**.\n* ``client_email`` — the creator is the **contractor**."
      },
      "CreateInviteCodeRequest": {
        "properties": {
          "email": {
            "type": "string",
            "title": "Email",
            "description": "Email of the user to create invite code for"
          },
          "code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Code",
            "description": "Custom code (auto-generated if omitted)"
          },
          "plan": {
            "type": "string",
            "pattern": "^(free|basic|pro)$",
            "title": "Plan",
            "description": "Plan granted to users who apply this code",
            "default": "free"
          },
          "startCredits": {
            "type": "number",
            "title": "Startcredits",
            "description": "Starting credits for users who apply this code",
            "default": 0
          }
        },
        "type": "object",
        "required": [
          "email"
        ],
        "title": "CreateInviteCodeRequest"
      },
      "CreateInvoiceFromContractRequest": {
        "properties": {
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amount"
          },
          "comment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment"
          },
          "invoicePrefix": {
            "type": "string",
            "maxLength": 16,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9_-]+$",
            "title": "Invoiceprefix",
            "description": "Prefix for auto-generated invoice_number, e.g. \"INV\" → \"INV-0001\".",
            "default": "INV"
          },
          "contractorAddress": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "periodStart": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Periodstart"
          },
          "addItems": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Additems"
          }
        },
        "type": "object",
        "title": "CreateInvoiceFromContractRequest",
        "description": "Request to create an invoice from a contract.\n\nEither party (client or contractor) of the contract may create the invoice;\nattribution always flows from ``contract.contractor`` to\n``contract.client``. Amount defaults to the contract amount when not\nprovided. ``contractor_address`` is optional — when omitted, the snapshot\nstored on the contract (or the linked contact's address) is used.\n``invoice_number`` is auto-generated per (contractor, client) pair as e.g.\n``\"INV-0001\"``."
      },
      "CreateInvoiceRequest": {
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/Currency",
            "default": "USD"
          },
          "comment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment"
          },
          "emailMessage": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Emailmessage"
          },
          "invoicePrefix": {
            "type": "string",
            "maxLength": 16,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9_-]+$",
            "title": "Invoiceprefix",
            "description": "Prefix for auto-generated invoice_number, e.g. \"INV\" → \"INV-0001\".",
            "default": "INV"
          },
          "issuedDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Issueddate"
          },
          "dueDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duedate"
          },
          "items": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Items"
          },
          "discount": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0
              },
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discount",
            "description": "Fixed discount in invoice currency. Subtracted from sum of items."
          },
          "documentIds": {
            "anyOf": [
              {
                "items": {
                  "type": "string",
                  "format": "uuid"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Documentids"
          },
          "contractorEmail": {
            "type": "string",
            "title": "Contractoremail"
          },
          "contractorDisplayName": {
            "type": "string",
            "title": "Contractordisplayname"
          },
          "contractorAddress": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "clientEmail": {
            "type": "string",
            "title": "Clientemail"
          },
          "clientDisplayName": {
            "type": "string",
            "title": "Clientdisplayname"
          },
          "clientAddress": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "banks": {
            "anyOf": [
              {
                "items": {
                  "type": "string",
                  "format": "uuid"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Banks"
          },
          "onchain": {
            "type": "boolean",
            "title": "Onchain",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "contractorEmail",
          "contractorDisplayName",
          "clientEmail",
          "clientDisplayName"
        ],
        "title": "CreateInvoiceRequest",
        "description": "Request to create an invoice.\n\nParticipant data (email, display_name, address) is snapshotted at creation time.\nAmount is computed as sum of items[].price * items[].quantity.\ninvoice_number is auto-generated per (contractor, client) pair."
      },
      "CreateUploadedInvoiceRequest": {
        "properties": {
          "amount": {
            "anyOf": [
              {
                "type": "number",
                "exclusiveMinimum": 0
              },
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              }
            ],
            "title": "Amount"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency",
            "default": "USD"
          },
          "comment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment"
          },
          "emailMessage": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Emailmessage"
          },
          "issuedDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Issueddate"
          },
          "dueDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duedate"
          },
          "items": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Items"
          },
          "documentIds": {
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array",
            "title": "Documentids"
          },
          "contractorEmail": {
            "type": "string",
            "title": "Contractoremail"
          },
          "contractorDisplayName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contractordisplayname"
          },
          "contractorAddress": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "contactIds": {
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array",
            "title": "Contactids"
          }
        },
        "type": "object",
        "required": [
          "amount",
          "contractorEmail"
        ],
        "title": "CreateUploadedInvoiceRequest",
        "description": "Create an incoming invoice from a manually uploaded/local document.\n\nCurrent user is the client/payer. Payment methods are resolved from saved\ncontacts; direct paymentMethods input is intentionally not accepted."
      },
      "CreateUserRequest": {
        "properties": {
          "email": {
            "type": "string",
            "title": "Email"
          },
          "firstName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Firstname"
          },
          "lastName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastname"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "birthDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Birthdate"
          },
          "country": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CountryCode"
              },
              {
                "type": "null"
              }
            ]
          },
          "isBusiness": {
            "type": "boolean",
            "title": "Isbusiness",
            "default": false
          },
          "entityName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entityname"
          },
          "jurisdiction": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CountryCode"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "email"
        ],
        "title": "CreateUserRequest"
      },
      "CreateUserResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "email": {
            "type": "string",
            "title": "Email"
          },
          "firstName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Firstname"
          },
          "lastName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastname"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "birthDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Birthdate"
          },
          "country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country"
          },
          "entityName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entityname"
          },
          "isBusiness": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Isbusiness"
          },
          "kycStatus": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Kycstatus"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "title": "Updatedat"
          },
          "signedToken": {
            "type": "string",
            "title": "Signedtoken"
          },
          "railsRequested": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Railsrequested"
          },
          "bankRequested": {
            "$ref": "#/components/schemas/BankRequestedSettings-Output"
          }
        },
        "type": "object",
        "required": [
          "id",
          "email",
          "createdAt",
          "updatedAt",
          "signedToken"
        ],
        "title": "CreateUserResponse"
      },
      "Currency": {
        "type": "string",
        "enum": [
          "USD",
          "EUR",
          "GBP",
          "JPY",
          "CHF",
          "CAD",
          "AUD",
          "NZD",
          "SEK",
          "NOK",
          "AED",
          "HKD"
        ],
        "title": "Currency",
        "description": "Supported invoice/contract currencies. G10 majors + AED/HKD."
      },
      "CustomContractPreviewFields": {
        "properties": {
          "items": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Items"
          }
        },
        "type": "object",
        "title": "CustomContractPreviewFields"
      },
      "DeploySafeMsigRequest": {
        "properties": {
          "x": {
            "type": "string",
            "title": "X"
          },
          "y": {
            "type": "string",
            "title": "Y"
          }
        },
        "type": "object",
        "required": [
          "x",
          "y"
        ],
        "title": "DeploySafeMsigRequest",
        "description": "Request to deploy a 2/2 Safe multisig with passkey + backend EOA owners.\n\nx/y are the P-256 public key coordinates of the passkey. Each may be\nprovided as a 0x-prefixed hex string or as a decimal string."
      },
      "DeploySafeMsigResponse": {
        "properties": {
          "safeAddress": {
            "type": "string",
            "title": "Safeaddress"
          },
          "passkeySignerAddress": {
            "type": "string",
            "title": "Passkeysigneraddress"
          },
          "backendOwner": {
            "type": "string",
            "title": "Backendowner"
          },
          "txHash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Txhash"
          }
        },
        "type": "object",
        "required": [
          "safeAddress",
          "passkeySignerAddress",
          "backendOwner"
        ],
        "title": "DeploySafeMsigResponse",
        "description": "Response for /wallet/deploy_safe_msig."
      },
      "DeviceResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "userId": {
            "type": "string",
            "format": "uuid",
            "title": "Userid"
          },
          "deviceId": {
            "type": "string",
            "title": "Deviceid"
          },
          "deviceType": {
            "type": "string",
            "title": "Devicetype"
          },
          "deviceName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Devicename"
          },
          "notificationToken": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notificationtoken"
          },
          "isActive": {
            "type": "boolean",
            "title": "Isactive"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "userId",
          "deviceId",
          "deviceType",
          "deviceName",
          "notificationToken",
          "isActive",
          "createdAt"
        ],
        "title": "DeviceResponse",
        "description": "Schema for device response."
      },
      "DocumentDraftInfo": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "type": {
            "$ref": "#/components/schemas/SlxDocumentType"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "originName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Originname"
          },
          "link": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Link"
          },
          "createdAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Createdat"
          },
          "content": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content"
          }
        },
        "type": "object",
        "required": [
          "id",
          "type"
        ],
        "title": "DocumentDraftInfo",
        "description": "Document info in response."
      },
      "DocumentResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "documentType": {
            "type": "string",
            "title": "Documenttype"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "originName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Originname"
          },
          "context": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Context"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          },
          "swipeluxId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Swipeluxid"
          },
          "alignId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Alignid"
          },
          "unused": {
            "type": "boolean",
            "title": "Unused",
            "default": false
          },
          "downloadLink": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Downloadlink"
          }
        },
        "type": "object",
        "required": [
          "id",
          "documentType",
          "createdAt"
        ],
        "title": "DocumentResponse",
        "description": "Document metadata for admin views."
      },
      "DocumentVerifyResponse": {
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          },
          "hash": {
            "type": "string",
            "title": "Hash"
          },
          "link": {
            "type": "string",
            "title": "Link"
          },
          "creatorName": {
            "type": "string",
            "title": "Creatorname"
          },
          "creatorEmail": {
            "type": "string",
            "title": "Creatoremail"
          }
        },
        "type": "object",
        "required": [
          "createdAt",
          "hash",
          "link",
          "creatorName",
          "creatorEmail"
        ],
        "title": "DocumentVerifyResponse",
        "description": "Response for document verification by internal_id."
      },
      "EmailAccountInput": {
        "properties": {
          "accountType": {
            "type": "string",
            "const": "email",
            "title": "Accounttype",
            "default": "email"
          },
          "email": {
            "type": "string",
            "title": "Email"
          }
        },
        "type": "object",
        "required": [
          "email"
        ],
        "title": "EmailAccountInput",
        "description": "Email contact input."
      },
      "EmployerContractPreviewFields": {
        "properties": {
          "effectiveDate": {
            "type": "string",
            "title": "Effectivedate"
          },
          "employerName": {
            "type": "string",
            "title": "Employername"
          },
          "employeeName": {
            "type": "string",
            "title": "Employeename"
          },
          "positionTitle": {
            "type": "string",
            "title": "Positiontitle"
          },
          "startDate": {
            "type": "string",
            "title": "Startdate"
          },
          "endDate": {
            "type": "string",
            "title": "Enddate"
          },
          "scope": {
            "type": "string",
            "title": "Scope"
          },
          "compensation": {
            "type": "string",
            "title": "Compensation"
          },
          "paymentTerms": {
            "type": "string",
            "title": "Paymentterms"
          },
          "invoiceCycle": {
            "type": "string",
            "title": "Invoicecycle"
          },
          "paymentDue": {
            "type": "string",
            "title": "Paymentdue"
          },
          "confidentialityTerms": {
            "type": "string",
            "title": "Confidentialityterms"
          },
          "intellectualPropertyTerms": {
            "type": "string",
            "title": "Intellectualpropertyterms"
          },
          "complianceTerms": {
            "type": "string",
            "title": "Complianceterms"
          }
        },
        "type": "object",
        "required": [
          "effectiveDate",
          "employerName",
          "employeeName",
          "positionTitle",
          "startDate",
          "endDate",
          "scope",
          "compensation",
          "paymentTerms",
          "invoiceCycle",
          "paymentDue",
          "confidentialityTerms",
          "intellectualPropertyTerms",
          "complianceTerms"
        ],
        "title": "EmployerContractPreviewFields"
      },
      "EncryptionKeyResponse": {
        "properties": {
          "encryption_key": {
            "type": "string",
            "title": "Encryption Key"
          }
        },
        "type": "object",
        "required": [
          "encryption_key"
        ],
        "title": "EncryptionKeyResponse"
      },
      "FiatBusinessAddress": {
        "properties": {
          "streetAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Streetaddress"
          },
          "addressLine2": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Addressline2"
          },
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "City"
          },
          "state": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "State"
          },
          "country": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CountryCode"
              },
              {
                "type": "null"
              }
            ]
          },
          "zip": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Zip"
          }
        },
        "type": "object",
        "title": "FiatBusinessAddress",
        "description": "Business address."
      },
      "FiatBusinessType": {
        "type": "string",
        "enum": [
          "technology",
          "finance",
          "healthcare",
          "retail",
          "e_commerce",
          "manufacturing",
          "real_estate",
          "consulting",
          "hospitality",
          "education",
          "transportation",
          "entertainment",
          "agriculture",
          "construction",
          "professional_services",
          "crypto_web3",
          "other"
        ],
        "title": "FiatBusinessType",
        "description": "Business industry type."
      },
      "FiatEntityType": {
        "type": "string",
        "enum": [
          "llc",
          "corporation",
          "s_corporation",
          "c_corporation",
          "partnership",
          "limited_partnership",
          "sole_proprietorship",
          "nonprofit",
          "trust",
          "cooperative",
          "dao",
          "foundation",
          "other"
        ],
        "title": "FiatEntityType",
        "description": "Business entity type."
      },
      "FiatIdentityDocument": {
        "properties": {
          "type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FiatIdentityDocumentType"
              },
              {
                "type": "null"
              }
            ]
          },
          "issuingCountry": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CountryCode"
              },
              {
                "type": "null"
              }
            ]
          },
          "number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Number"
          }
        },
        "type": "object",
        "title": "FiatIdentityDocument",
        "description": "Identity document for shareholder."
      },
      "FiatIdentityDocumentType": {
        "type": "string",
        "enum": [
          "passport",
          "id_card",
          "drivers_license",
          "driver_license",
          "residence_permit",
          "government_id",
          "state_or_provincial_id",
          "visa"
        ],
        "title": "FiatIdentityDocumentType",
        "description": "Identity document type."
      },
      "FiatPaymentType": {
        "type": "string",
        "enum": [
          "sepa",
          "swift",
          "ach",
          "uaefts",
          "fedwire"
        ],
        "title": "FiatPaymentType",
        "description": "Canonical fiat payment rail used for ``account_type`` discrimination,\nbank-rail methods, and contact/transaction type alignment."
      },
      "FiatProvider": {
        "type": "string",
        "enum": [
          "swipelux",
          "align",
          "mcp",
          "wirex"
        ],
        "title": "FiatProvider",
        "description": "Supported fiat payment providers."
      },
      "FiatPurposeOfFunds": {
        "type": "string",
        "enum": [
          "operations",
          "payroll",
          "vendor_payments",
          "investment",
          "treasury_management",
          "international_transfers",
          "other"
        ],
        "title": "FiatPurposeOfFunds",
        "description": "Purpose of funds."
      },
      "FiatRailResponse": {
        "properties": {
          "provider": {
            "$ref": "#/components/schemas/FiatProvider"
          },
          "externalUserId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Externaluserid"
          },
          "kycStatus": {
            "type": "string",
            "title": "Kycstatus",
            "default": "not_started"
          },
          "comment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment"
          }
        },
        "type": "object",
        "required": [
          "provider"
        ],
        "title": "FiatRailResponse",
        "description": "Response schema for a user's fiat rail registration."
      },
      "FiatShareholder": {
        "properties": {
          "localId": {
            "type": "string",
            "title": "Localid"
          },
          "firstName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Firstname"
          },
          "lastName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastname"
          },
          "birthDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Birthdate"
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          },
          "taxId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Taxid"
          },
          "ownershipPercentage": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 100,
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "title": "Ownershippercentage"
          },
          "hasControl": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hascontrol"
          },
          "isSigner": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Issigner"
          },
          "isDirector": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Isdirector"
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FiatShareholderAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "identityDocuments": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/FiatIdentityDocument"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Identitydocuments"
          },
          "documentIds": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Documentids"
          },
          "swipeluxId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Swipeluxid"
          }
        },
        "type": "object",
        "required": [
          "localId"
        ],
        "title": "FiatShareholder",
        "description": "Shareholder data stored in business_data JSONB."
      },
      "FiatShareholderAddress": {
        "properties": {
          "streetAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Streetaddress"
          },
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "City"
          },
          "country": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CountryCode"
              },
              {
                "type": "null"
              }
            ]
          },
          "zip": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Zip"
          }
        },
        "type": "object",
        "title": "FiatShareholderAddress",
        "description": "Shareholder address."
      },
      "FiatSourceOfFunds": {
        "type": "string",
        "enum": [
          "business_revenue",
          "investment",
          "loan",
          "personal_savings",
          "third_party_funds",
          "grant",
          "other"
        ],
        "title": "FiatSourceOfFunds",
        "description": "Source of funds."
      },
      "FiatTransferAdminItem": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "userId": {
            "type": "string",
            "format": "uuid",
            "title": "Userid"
          },
          "userName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Username"
          },
          "userEmail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Useremail"
          },
          "type": {
            "$ref": "#/components/schemas/FiatTransferType"
          },
          "status": {
            "$ref": "#/components/schemas/FiatTransferStatus"
          },
          "provider": {
            "type": "string",
            "title": "Provider"
          },
          "amount": {
            "type": "string",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "title": "Amount"
          },
          "currency": {
            "type": "string",
            "title": "Currency"
          },
          "fee": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fee"
          },
          "amountTo": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amountto"
          },
          "exchangeRate": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exchangerate"
          },
          "txHash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Txhash"
          },
          "onchainTransactionId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Onchaintransactionid"
          },
          "externalId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Externalid"
          },
          "memo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Memo"
          },
          "paymentReference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Paymentreference"
          },
          "contact": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FiatTransferContactInfo"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "title": "Updatedat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "userId",
          "type",
          "status",
          "provider",
          "amount",
          "currency",
          "createdAt",
          "updatedAt"
        ],
        "title": "FiatTransferAdminItem",
        "description": "Single fiat transfer in admin list."
      },
      "FiatTransferContactInfo": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name"
          },
          "iban": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Iban"
          },
          "bankName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bankname"
          },
          "country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country"
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "FiatTransferContactInfo",
        "description": "Contact bank details attached to a fiat transfer."
      },
      "FiatTransferListResponse": {
        "properties": {
          "transfers": {
            "items": {
              "$ref": "#/components/schemas/FiatTransferAdminItem"
            },
            "type": "array",
            "title": "Transfers"
          },
          "total": {
            "type": "integer",
            "title": "Total"
          }
        },
        "type": "object",
        "required": [
          "transfers",
          "total"
        ],
        "title": "FiatTransferListResponse",
        "description": "Paginated list of fiat transfers."
      },
      "FiatTransferStatus": {
        "type": "string",
        "enum": [
          "pending",
          "pending_deposit",
          "awaiting_funds",
          "processing",
          "completed",
          "failed",
          "refunded",
          "canceled"
        ],
        "title": "FiatTransferStatus",
        "description": "Fiat transfer status."
      },
      "FiatTransferType": {
        "type": "string",
        "enum": [
          "payout",
          "withdraw",
          "deposit",
          "payin",
          "transfer",
          "card_spend"
        ],
        "title": "FiatTransferType",
        "description": "Fiat transfer type."
      },
      "FiatVerifierRole": {
        "type": "string",
        "enum": [
          "officer",
          "employer",
          "accountant",
          "agent"
        ],
        "title": "FiatVerifierRole",
        "description": "KYB verifier role."
      },
      "FincodesBank": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "country_id": {
            "type": "string",
            "title": "Country Id"
          },
          "code": {
            "type": "string",
            "title": "Code"
          },
          "name": {
            "type": "string",
            "title": "Name"
          }
        },
        "type": "object",
        "required": [
          "id",
          "country_id",
          "code",
          "name"
        ],
        "title": "FincodesBank"
      },
      "FincodesCity": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "country_id": {
            "type": "string",
            "title": "Country Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          }
        },
        "type": "object",
        "required": [
          "id",
          "country_id",
          "name"
        ],
        "title": "FincodesCity"
      },
      "FincodesCountry": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name"
        ],
        "title": "FincodesCountry"
      },
      "FirmaCreateDocumentRequest": {
        "properties": {
          "documentType": {
            "$ref": "#/components/schemas/CorpDocumentType"
          },
          "signer": {
            "$ref": "#/components/schemas/FirmaSignerInfo"
          },
          "recipient": {
            "$ref": "#/components/schemas/FirmaSignerInfo"
          },
          "contractorAgreement": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ContractorAgreementData"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "documentType",
          "signer",
          "recipient"
        ],
        "title": "FirmaCreateDocumentRequest",
        "description": "Request to create a document for signing via Firma."
      },
      "FirmaCreateDocumentResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "firmaId": {
            "type": "string",
            "title": "Firmaid"
          },
          "documentType": {
            "type": "string",
            "title": "Documenttype"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "signerEmail": {
            "type": "string",
            "title": "Signeremail"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "signingUrls": {
            "items": {
              "$ref": "#/components/schemas/FirmaSigningUrlInfo"
            },
            "type": "array",
            "title": "Signingurls",
            "default": []
          }
        },
        "type": "object",
        "required": [
          "id",
          "firmaId",
          "documentType",
          "status",
          "signerEmail"
        ],
        "title": "FirmaCreateDocumentResponse",
        "description": "Response after creating and sending a signing request."
      },
      "FirmaSignerInfo": {
        "properties": {
          "firstName": {
            "type": "string",
            "title": "Firstname"
          },
          "lastName": {
            "type": "string",
            "title": "Lastname"
          },
          "email": {
            "type": "string",
            "title": "Email"
          }
        },
        "type": "object",
        "required": [
          "firstName",
          "lastName",
          "email"
        ],
        "title": "FirmaSignerInfo",
        "description": "Signer information for a signing request."
      },
      "FirmaSigningUrlInfo": {
        "properties": {
          "email": {
            "type": "string",
            "title": "Email"
          },
          "signingUrl": {
            "type": "string",
            "title": "Signingurl"
          }
        },
        "type": "object",
        "required": [
          "email",
          "signingUrl"
        ],
        "title": "FirmaSigningUrlInfo",
        "description": "Signing URL for embedding in iframe."
      },
      "GenerateContractDocumentResponse": {
        "properties": {
          "type": {
            "$ref": "#/components/schemas/ContractDocumentTemplateType"
          },
          "markdown": {
            "type": "string",
            "title": "Markdown"
          },
          "html": {
            "type": "string",
            "title": "Html"
          },
          "htmlPreview": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Htmlpreview"
          },
          "fields": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/EmployerContractPreviewFields"
              },
              {
                "$ref": "#/components/schemas/ServiceContractPreviewFields"
              },
              {
                "$ref": "#/components/schemas/ContractorContractPreviewFields"
              },
              {
                "$ref": "#/components/schemas/CustomContractPreviewFields"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fields"
          },
          "missingFields": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Missingfields"
          }
        },
        "type": "object",
        "required": [
          "type",
          "markdown",
          "html"
        ],
        "title": "GenerateContractDocumentResponse"
      },
      "GenerateScopePrefillRequest": {
        "properties": {
          "role": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1,
            "title": "Role"
          },
          "context": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 1000
              },
              {
                "type": "null"
              }
            ],
            "title": "Context"
          }
        },
        "type": "object",
        "required": [
          "role"
        ],
        "title": "GenerateScopePrefillRequest",
        "description": "Generate plain-text scope description from a role."
      },
      "GenerateScopePrefillResponse": {
        "properties": {
          "text": {
            "type": "string",
            "title": "Text"
          }
        },
        "type": "object",
        "required": [
          "text"
        ],
        "title": "GenerateScopePrefillResponse"
      },
      "GoogleCertsResponse": {
        "properties": {
          "msg": {
            "type": "string",
            "title": "Msg"
          },
          "signature": {
            "type": "string",
            "title": "Signature"
          },
          "public_key": {
            "type": "string",
            "title": "Public Key"
          }
        },
        "type": "object",
        "required": [
          "msg",
          "signature",
          "public_key"
        ],
        "title": "GoogleCertsResponse"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "HevnChatResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "userId": {
            "type": "string",
            "format": "uuid",
            "title": "Userid"
          },
          "userEmail": {
            "type": "string",
            "title": "Useremail"
          },
          "userName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Username"
          },
          "lastMessageAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastmessageat"
          },
          "updatedAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updatedat"
          },
          "lastReadByUserAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastreadbyuserat"
          },
          "lastReadByAdminAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastreadbyadminat"
          },
          "unreadCount": {
            "type": "integer",
            "title": "Unreadcount",
            "default": 0
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "userId",
          "userEmail",
          "createdAt"
        ],
        "title": "HevnChatResponse",
        "description": "HEVN support chat with user info for admin list."
      },
      "IBANAccountDetails-Input": {
        "properties": {
          "bankName": {
            "type": "string",
            "title": "Bankname"
          },
          "bankAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bankaddress"
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Currency"
          },
          "accountHolderType": {
            "$ref": "#/components/schemas/AlignAccountHolderType"
          },
          "accountHolderFirstName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderfirstname"
          },
          "accountHolderLastName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderlastname"
          },
          "accountHolderBusinessName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderbusinessname"
          },
          "accountHolderAddress": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "relationship": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__schemas__base__ContactRelationship"
              },
              {
                "type": "null"
              }
            ]
          },
          "paymentReference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Paymentreference"
          },
          "accountType": {
            "type": "string",
            "enum": [
              "sepa",
              "uaefts"
            ],
            "title": "Accounttype",
            "default": "sepa"
          },
          "ibanNumber": {
            "type": "string",
            "title": "Ibannumber"
          },
          "bic": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bic"
          }
        },
        "type": "object",
        "required": [
          "bankName",
          "accountHolderType",
          "ibanNumber"
        ],
        "title": "IBANAccountDetails",
        "description": "IBAN (SEPA) external account."
      },
      "IBANAccountDetails-Output": {
        "properties": {
          "bankName": {
            "type": "string",
            "title": "Bankname"
          },
          "bankAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bankaddress"
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Currency"
          },
          "accountHolderType": {
            "$ref": "#/components/schemas/AlignAccountHolderType"
          },
          "accountHolderFirstName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderfirstname"
          },
          "accountHolderLastName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderlastname"
          },
          "accountHolderBusinessName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderbusinessname"
          },
          "accountHolderAddress": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "relationship": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__schemas__base__ContactRelationship"
              },
              {
                "type": "null"
              }
            ]
          },
          "paymentReference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Paymentreference"
          },
          "accountType": {
            "type": "string",
            "enum": [
              "sepa",
              "uaefts"
            ],
            "title": "Accounttype",
            "default": "sepa"
          },
          "ibanNumber": {
            "type": "string",
            "title": "Ibannumber"
          },
          "bic": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bic"
          },
          "beneficiaryName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Beneficiaryname",
            "description": "Frontend-only alias derived from account holder fields.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "bankName",
          "accountHolderType",
          "ibanNumber",
          "beneficiaryName"
        ],
        "title": "IBANAccountDetails",
        "description": "IBAN (SEPA) external account."
      },
      "IBANStatus": {
        "type": "string",
        "enum": [
          "not_started",
          "requested",
          "document_requested",
          "approved",
          "pending_kyc",
          "pending",
          "active",
          "hidden",
          "frozen",
          "closed",
          "rejected"
        ],
        "title": "IBANStatus",
        "description": "IBAN account status.\n\nState machine:\n``not_started`` → ``requested`` → ``document_requested`` → ``approved`` → ``pending`` → ``active``\n\n- ``not_started``       — default for every rail until the user opts in.\n- ``requested``         — user asked for this rail via /pre-approve; awaiting KYC.\n- ``document_requested``— admin asked the user for more documents (KYB).\n- ``approved``          — KYB passed, account ready to be created at provider.\n- ``pending_kyc``       — provider rejected creation until KYC is approved.\n- ``pending``           — provider accepted/created the account, waiting.\n- ``active``            — real bank details are attached to the row.\n- ``frozen`` / ``closed``— terminal/blocked states."
      },
      "IbanInfoResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "account_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Account Number"
          },
          "national_bank_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "National Bank Code"
          },
          "national_branch_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "National Branch Code"
          },
          "bic": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/BicInfoResponse"
              },
              {
                "type": "null"
              }
            ]
          },
          "country": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FincodesCountry"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "id"
        ],
        "title": "IbanInfoResponse",
        "description": "IBAN validation response from Fincodes API."
      },
      "ImportIbanSepaData": {
        "properties": {
          "iban": {
            "type": "string",
            "maxLength": 34,
            "minLength": 15,
            "title": "Iban"
          },
          "country": {
            "$ref": "#/components/schemas/CountryCode"
          },
          "currency": {
            "type": "string",
            "maxLength": 3,
            "minLength": 3,
            "title": "Currency"
          },
          "accountHolderName": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1,
            "title": "Accountholdername"
          },
          "bankAddress": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 512,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Bankaddress"
          },
          "bankName": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Bankname"
          },
          "bic": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 11,
                "minLength": 8
              },
              {
                "type": "null"
              }
            ],
            "title": "Bic"
          },
          "label": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "relationship": {
            "$ref": "#/components/schemas/SlxAccountHolderRelationship",
            "default": "self"
          }
        },
        "type": "object",
        "required": [
          "iban",
          "country",
          "currency",
          "accountHolderName"
        ],
        "title": "ImportIbanSepaData",
        "description": "SEPA account data parsed from free-form text."
      },
      "ImportWalletRequest": {
        "properties": {
          "address": {
            "type": "string",
            "title": "Address"
          },
          "chains": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Chains"
          },
          "daoMembers": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Daomembers"
          },
          "memo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Memo"
          },
          "trackTransactions": {
            "type": "boolean",
            "title": "Tracktransactions",
            "default": false
          },
          "viewOnly": {
            "type": "boolean",
            "title": "Viewonly",
            "default": true
          }
        },
        "type": "object",
        "required": [
          "address"
        ],
        "title": "ImportWalletRequest",
        "description": "Request to import an external EVM wallet."
      },
      "IncorporationService": {
        "type": "string",
        "enum": [
          "incorporation_fees",
          "office",
          "registrator_fees",
          "us_bank",
          "eu_bank",
          "ae_bank",
          "1year_maintenance"
        ],
        "title": "IncorporationService",
        "description": "Services available for incorporation package."
      },
      "InviteBonus": {
        "properties": {
          "amount": {
            "type": "string",
            "title": "Amount"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "USD"
          }
        },
        "type": "object",
        "required": [
          "amount"
        ],
        "title": "InviteBonus",
        "description": "A single referral bonus tier."
      },
      "InviteBonuses": {
        "properties": {
          "kyb": {
            "$ref": "#/components/schemas/InviteBonus"
          },
          "volume": {
            "$ref": "#/components/schemas/InviteVolumeBonus"
          }
        },
        "type": "object",
        "required": [
          "kyb",
          "volume"
        ],
        "title": "InviteBonuses",
        "description": "Bonus configuration for the referral program."
      },
      "InviteCodeAdminResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "userId": {
            "type": "string",
            "format": "uuid",
            "title": "Userid"
          },
          "userEmail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Useremail"
          },
          "code": {
            "type": "string",
            "title": "Code"
          },
          "totalInvited": {
            "type": "integer",
            "title": "Totalinvited"
          },
          "plan": {
            "type": "string",
            "title": "Plan"
          },
          "feeShare": {
            "type": "number",
            "title": "Feeshare"
          },
          "startCredits": {
            "type": "number",
            "title": "Startcredits"
          }
        },
        "type": "object",
        "required": [
          "id",
          "userId",
          "code",
          "totalInvited",
          "plan",
          "feeShare",
          "startCredits"
        ],
        "title": "InviteCodeAdminResponse"
      },
      "InviteCodeResponse": {
        "properties": {
          "code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Code"
          },
          "totalInvited": {
            "type": "integer",
            "title": "Totalinvited",
            "default": 0
          },
          "bonuses": {
            "$ref": "#/components/schemas/InviteBonuses"
          }
        },
        "type": "object",
        "required": [
          "bonuses"
        ],
        "title": "InviteCodeResponse",
        "description": "Response for invite code."
      },
      "InviteFlow": {
        "type": "string",
        "enum": [
          "kyb_manager",
          "employer",
          "team_member"
        ],
        "title": "InviteFlow",
        "description": "Invite flow types."
      },
      "InviteRequest": {
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "title": "Email"
          },
          "flow": {
            "$ref": "#/components/schemas/InviteFlow"
          }
        },
        "type": "object",
        "required": [
          "email",
          "flow"
        ],
        "title": "InviteRequest",
        "description": "Request schema for sending an invite."
      },
      "InviteVolumeBonus": {
        "properties": {
          "amount": {
            "type": "string",
            "title": "Amount"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "USD"
          },
          "threshold": {
            "type": "string",
            "title": "Threshold"
          }
        },
        "type": "object",
        "required": [
          "amount",
          "threshold"
        ],
        "title": "InviteVolumeBonus",
        "description": "Volume-based bonus tier with a threshold."
      },
      "InvitedListResponse": {
        "properties": {
          "invited": {
            "items": {
              "$ref": "#/components/schemas/InvitedUserResponse"
            },
            "type": "array",
            "title": "Invited"
          },
          "total": {
            "type": "integer",
            "title": "Total"
          }
        },
        "type": "object",
        "required": [
          "invited",
          "total"
        ],
        "title": "InvitedListResponse",
        "description": "List of invited users."
      },
      "InvitedStatus": {
        "type": "string",
        "enum": [
          "invited",
          "kyb_pending",
          "verified"
        ],
        "title": "InvitedStatus",
        "description": "Status of an invited user along the KYB funnel."
      },
      "InvitedUserResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "email": {
            "type": "string",
            "title": "Email"
          },
          "firstName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Firstname"
          },
          "lastName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastname"
          },
          "avatarUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatarurl"
          },
          "isBusiness": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Isbusiness"
          },
          "status": {
            "$ref": "#/components/schemas/InvitedStatus"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "email",
          "status",
          "createdAt"
        ],
        "title": "InvitedUserResponse",
        "description": "A single invited user."
      },
      "InvoiceContractInfo": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "type": {
            "$ref": "#/components/schemas/ContractType"
          },
          "status": {
            "$ref": "#/components/schemas/ContractStatus"
          },
          "period": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Period"
          },
          "isRecurring": {
            "type": "boolean",
            "title": "Isrecurring"
          },
          "activationAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Activationat"
          },
          "expirationAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expirationat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "type",
          "status",
          "isRecurring"
        ],
        "title": "InvoiceContractInfo",
        "description": "Minimal contract info embedded in invoice response."
      },
      "InvoiceDocumentInfo": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "key": {
            "type": "string",
            "title": "Key"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "key"
        ],
        "title": "InvoiceDocumentInfo",
        "description": "Document attached to an invoice.\n\n`key` is a short-lived signed token. To download call\nGET /documents/download/{id}?key={key}."
      },
      "InvoiceListResponse": {
        "properties": {
          "invoices": {
            "items": {
              "$ref": "#/components/schemas/InvoiceResponse"
            },
            "type": "array",
            "title": "Invoices"
          }
        },
        "type": "object",
        "required": [
          "invoices"
        ],
        "title": "InvoiceListResponse",
        "description": "List of invoices."
      },
      "InvoiceParticipant": {
        "properties": {
          "email": {
            "type": "string",
            "title": "Email"
          },
          "displayName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Displayname"
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "email"
        ],
        "title": "InvoiceParticipant",
        "description": "Minimal participant info for invoice response."
      },
      "InvoiceResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "onchainTransactionId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Onchaintransactionid"
          },
          "transaction": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/InvoiceTransactionInfo"
              },
              {
                "type": "null"
              }
            ]
          },
          "amount": {
            "type": "string",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "title": "Amount"
          },
          "discount": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discount"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "comment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment"
          },
          "emailMessage": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Emailmessage"
          },
          "invoiceNumber": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invoicenumber"
          },
          "periodNumber": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Periodnumber"
          },
          "issuedDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Issueddate"
          },
          "dueDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duedate"
          },
          "items": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Items"
          },
          "paymentMethods": {
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/IBANAccountDetails-Output"
                },
                {
                  "$ref": "#/components/schemas/USExternalAccountDetails-Output"
                },
                {
                  "$ref": "#/components/schemas/SwiftAccountDetails-Output"
                },
                {
                  "$ref": "#/components/schemas/ContactWalletResponse"
                },
                {
                  "$ref": "#/components/schemas/EmailAccountInput"
                }
              ]
            },
            "type": "array",
            "title": "Paymentmethods"
          },
          "status": {
            "$ref": "#/components/schemas/InvoiceStatus"
          },
          "client": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/InvoiceParticipant"
              },
              {
                "type": "null"
              }
            ]
          },
          "contractor": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/InvoiceParticipant"
              },
              {
                "type": "null"
              }
            ]
          },
          "contract": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/InvoiceContractInfo"
              },
              {
                "type": "null"
              }
            ]
          },
          "invoiceLink": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invoicelink"
          },
          "documents": {
            "items": {
              "$ref": "#/components/schemas/InvoiceDocumentInfo"
            },
            "type": "array",
            "title": "Documents"
          },
          "paidAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Paidat"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "title": "Updatedat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "amount",
          "currency",
          "status",
          "createdAt",
          "updatedAt"
        ],
        "title": "InvoiceResponse",
        "description": "Invoice response."
      },
      "InvoiceShareLinkResponse": {
        "properties": {
          "link": {
            "type": "string",
            "title": "Link"
          },
          "key": {
            "type": "string",
            "title": "Key"
          },
          "keyPreview": {
            "type": "string",
            "title": "Keypreview"
          }
        },
        "type": "object",
        "required": [
          "link",
          "key",
          "keyPreview"
        ],
        "title": "InvoiceShareLinkResponse",
        "description": "Response with a share link for invoice creation."
      },
      "InvoiceStatus": {
        "type": "string",
        "enum": [
          "draft",
          "sent",
          "paid",
          "cancelled",
          "client_paid",
          "client_declined"
        ],
        "title": "InvoiceStatus",
        "description": "Invoice status."
      },
      "InvoiceTransactionInfo": {
        "properties": {
          "onchainTransactionId": {
            "type": "string",
            "title": "Onchaintransactionid"
          },
          "amount": {
            "type": "number",
            "title": "Amount"
          },
          "txHash": {
            "type": "string",
            "title": "Txhash"
          },
          "type": {
            "type": "string",
            "title": "Type"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "onchainTransactionId",
          "amount",
          "txHash",
          "type",
          "createdAt"
        ],
        "title": "InvoiceTransactionInfo",
        "description": "Minimal transaction info embedded in invoice response."
      },
      "InvoiceUserDetailsResponse": {
        "properties": {
          "client": {
            "$ref": "#/components/schemas/InvoiceParticipant"
          },
          "clientId": {
            "type": "string",
            "format": "uuid",
            "title": "Clientid"
          }
        },
        "type": "object",
        "required": [
          "client",
          "clientId"
        ],
        "title": "InvoiceUserDetailsResponse",
        "description": "Contractor details returned by a share link."
      },
      "IssueCardRequest": {
        "properties": {
          "format": {
            "$ref": "#/components/schemas/CardFormat",
            "default": "virtual"
          }
        },
        "type": "object",
        "title": "IssueCardRequest",
        "description": "Request to issue a new card."
      },
      "JoinTeamRequest": {
        "properties": {
          "userId": {
            "type": "string",
            "format": "uuid",
            "title": "Userid",
            "description": "ID of the user (team owner) to join"
          }
        },
        "type": "object",
        "required": [
          "userId"
        ],
        "title": "JoinTeamRequest"
      },
      "KybAgentChatResponse": {
        "properties": {
          "chat_id": {
            "type": "string",
            "format": "uuid",
            "title": "Chat Id"
          },
          "user_id": {
            "type": "string",
            "format": "uuid",
            "title": "User Id"
          },
          "message_count": {
            "type": "integer",
            "title": "Message Count",
            "default": 0
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "chat_id",
          "user_id",
          "created_at"
        ],
        "title": "KybAgentChatResponse",
        "description": "Active KYB agent chat for a user."
      },
      "KybDocumentUpload": {
        "properties": {
          "base64": {
            "type": "string",
            "title": "Base64"
          },
          "type": {
            "$ref": "#/components/schemas/SlxDocumentType"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "originName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Originname"
          },
          "context": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Context"
          }
        },
        "type": "object",
        "required": [
          "base64",
          "type"
        ],
        "title": "KybDocumentUpload",
        "description": "Document upload for draft."
      },
      "KybDraftRequest": {
        "properties": {
          "businessData": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/BusinessUserCreateRequest-Input"
              },
              {
                "type": "null"
              }
            ]
          },
          "documentIds": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Documentids"
          },
          "shareholders": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/FiatShareholder"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Shareholders"
          }
        },
        "type": "object",
        "title": "KybDraftRequest",
        "description": "Draft request. Documents are uploaded separately via POST /kyb/draft/documents."
      },
      "KybDraftResponse": {
        "properties": {
          "kybStatusByRails": {
            "additionalProperties": {
              "$ref": "#/components/schemas/KycStatus"
            },
            "propertyNames": {
              "$ref": "#/components/schemas/BankRail"
            },
            "type": "object",
            "title": "Kybstatusbyrails",
            "description": "KYB status for each activated bank rail"
          },
          "kybStatus": {
            "$ref": "#/components/schemas/KycStatus"
          },
          "businessData": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/BusinessUserCreateRequest-Output"
              },
              {
                "type": "null"
              }
            ]
          },
          "companyDocuments": {
            "items": {
              "$ref": "#/components/schemas/DocumentDraftInfo"
            },
            "type": "array",
            "title": "Companydocuments"
          },
          "shareholders": {
            "items": {
              "$ref": "#/components/schemas/ShareholderDraftResponse"
            },
            "type": "array",
            "title": "Shareholders"
          },
          "isReadyForSubmission": {
            "type": "boolean",
            "title": "Isreadyforsubmission",
            "default": false
          },
          "missingFields": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Missingfields"
          },
          "requiredDocuments": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Requireddocuments",
            "description": "Required document types for this company's jurisdiction"
          },
          "requiredShareholderDocuments": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Requiredshareholderdocuments",
            "description": "Required document types for each shareholder"
          },
          "swipeluxCustomerId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Swipeluxcustomerid"
          },
          "rails": {
            "items": {
              "$ref": "#/components/schemas/FiatRailResponse"
            },
            "type": "array",
            "title": "Rails",
            "description": "All fiat rails for this user"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "title": "Updatedat"
          },
          "comment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment"
          }
        },
        "type": "object",
        "required": [
          "kybStatus",
          "updatedAt"
        ],
        "title": "KybDraftResponse",
        "description": "Full draft response."
      },
      "KybStatusResponse": {
        "properties": {
          "provider": {
            "$ref": "#/components/schemas/FiatProvider",
            "default": "swipelux"
          },
          "revisionId": {
            "type": "string",
            "title": "Revisionid",
            "default": ""
          },
          "status": {
            "$ref": "#/components/schemas/KycStatus"
          },
          "submittedAt": {
            "type": "string",
            "title": "Submittedat",
            "default": ""
          },
          "reviewedAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewedat"
          },
          "comment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment"
          }
        },
        "type": "object",
        "required": [
          "status"
        ],
        "title": "KybStatusResponse",
        "description": "KYB review status from provider."
      },
      "KybSubmitResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success"
          },
          "swipeluxCustomerId": {
            "type": "string",
            "title": "Swipeluxcustomerid"
          },
          "kybStatus": {
            "$ref": "#/components/schemas/KycStatus"
          },
          "message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Message"
          }
        },
        "type": "object",
        "required": [
          "success",
          "swipeluxCustomerId",
          "kybStatus"
        ],
        "title": "KybSubmitResponse",
        "description": "Submit response."
      },
      "KycLinkResponse": {
        "properties": {
          "link": {
            "type": "string",
            "title": "Link"
          }
        },
        "type": "object",
        "required": [
          "link"
        ],
        "title": "KycLinkResponse",
        "description": "KYC verification link."
      },
      "KycStatus": {
        "type": "string",
        "enum": [
          "not_started",
          "requested",
          "incorporating",
          "pending",
          "under_review",
          "in_review",
          "approved",
          "rejected"
        ],
        "title": "KycStatus",
        "description": "KYC verification status."
      },
      "KycStatusResponse": {
        "properties": {
          "provider": {
            "$ref": "#/components/schemas/FiatProvider"
          },
          "externalUserId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Externaluserid"
          },
          "email": {
            "type": "string",
            "title": "Email"
          },
          "status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/KycStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "kycStatus": {
            "$ref": "#/components/schemas/KycStatus"
          },
          "firstName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Firstname"
          },
          "lastName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastname"
          },
          "entityName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entityname"
          },
          "kycLink": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Kyclink"
          },
          "kycUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Kycurl"
          },
          "contactSupportLink": {
            "type": "string",
            "title": "Contactsupportlink",
            "default": "https://app.gethevn.com/chat"
          }
        },
        "type": "object",
        "required": [
          "provider",
          "email",
          "kycStatus"
        ],
        "title": "KycStatusResponse",
        "description": "Response schema for KYC status check."
      },
      "McpTransactionResponse": {
        "properties": {
          "txHash": {
            "type": "string",
            "title": "Txhash"
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amount"
          },
          "receiverEmail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Receiveremail"
          },
          "receiverAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Receiveraddress"
          },
          "transactionLink": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transactionlink"
          },
          "time": {
            "type": "string",
            "format": "date-time",
            "title": "Time"
          }
        },
        "type": "object",
        "required": [
          "txHash",
          "time"
        ],
        "title": "McpTransactionResponse"
      },
      "McpTransferContext": {
        "properties": {
          "contactId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contactid"
          },
          "quoteId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quoteid"
          },
          "invoiceId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invoiceid"
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amount"
          },
          "memo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Memo"
          }
        },
        "type": "object",
        "title": "McpTransferContext"
      },
      "MemoUpdateRequest": {
        "properties": {
          "memo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Memo"
          }
        },
        "type": "object",
        "title": "MemoUpdateRequest",
        "description": "Request to update a transaction memo (description)."
      },
      "MemoUpdateResponse": {
        "properties": {
          "onchainTransactionId": {
            "type": "string",
            "title": "Onchaintransactionid"
          },
          "memo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Memo"
          }
        },
        "type": "object",
        "required": [
          "onchainTransactionId"
        ],
        "title": "MemoUpdateResponse",
        "description": "Response for memo update."
      },
      "NearCallRequest": {
        "properties": {
          "msg": {
            "type": "string",
            "title": "Msg"
          },
          "publicKey": {
            "type": "string",
            "title": "Publickey"
          },
          "proof": {
            "type": "string",
            "title": "Proof"
          }
        },
        "type": "object",
        "required": [
          "msg",
          "publicKey",
          "proof"
        ],
        "title": "NearCallRequest"
      },
      "NearCallResponse": {
        "properties": {
          "transactionHash": {
            "type": "string",
            "title": "Transactionhash"
          },
          "success": {
            "type": "boolean",
            "title": "Success"
          }
        },
        "type": "object",
        "required": [
          "transactionHash",
          "success"
        ],
        "title": "NearCallResponse"
      },
      "NotificationChannel": {
        "type": "string",
        "enum": [
          "email",
          "push",
          "internal"
        ],
        "title": "NotificationChannel",
        "description": "Notification delivery channel."
      },
      "NotificationChannelPrefs": {
        "properties": {
          "email": {
            "type": "boolean",
            "title": "Email",
            "default": true
          },
          "push": {
            "type": "boolean",
            "title": "Push",
            "default": true
          }
        },
        "type": "object",
        "title": "NotificationChannelPrefs",
        "description": "Per-channel toggles for a single notification category."
      },
      "NotificationListResponse": {
        "properties": {
          "notifications": {
            "items": {
              "$ref": "#/components/schemas/NotificationResponse"
            },
            "type": "array",
            "title": "Notifications"
          },
          "total": {
            "type": "integer",
            "title": "Total"
          }
        },
        "type": "object",
        "required": [
          "notifications",
          "total"
        ],
        "title": "NotificationListResponse",
        "description": "List of notifications response."
      },
      "NotificationResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "type": {
            "$ref": "#/components/schemas/NotificationType"
          },
          "channel": {
            "$ref": "#/components/schemas/NotificationChannel"
          },
          "isOpened": {
            "type": "boolean",
            "title": "Isopened"
          },
          "content": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          },
          "deviceName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Devicename"
          },
          "ipAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ipaddress"
          }
        },
        "type": "object",
        "required": [
          "id",
          "type",
          "channel",
          "isOpened",
          "createdAt"
        ],
        "title": "NotificationResponse",
        "description": "Single notification response."
      },
      "NotificationType": {
        "type": "string",
        "enum": [
          "login",
          "user_created",
          "welcome",
          "payment_received",
          "payment_sent",
          "withdrawal",
          "invoice",
          "invite",
          "account_approved",
          "sign_request",
          "sign_completed",
          "team_access",
          "bank_account_ready",
          "share_kyb",
          "payment_claim",
          "contact_invite",
          "new_device_login",
          "new_passkey",
          "new_api_key",
          "new_team_member",
          "privy_key_exported",
          "privy_wallet_recovered",
          "privy_mfa_disabled",
          "contract_payment_methods_updated",
          "contract_created",
          "contact_added",
          "bank_requested",
          "card_created",
          "card_details_viewed",
          "spending_alert",
          "low_balance",
          "accounting_sync_failed",
          "bill_status",
          "tx_comment",
          "support_reply",
          "compliance_reply"
        ],
        "title": "NotificationType",
        "description": "Notification type — matches the kind of event being notified."
      },
      "NotificationsSettings": {
        "properties": {
          "cashFlow": {
            "$ref": "#/components/schemas/NotificationChannelPrefs"
          },
          "suspiciousActivity": {
            "$ref": "#/components/schemas/NotificationChannelPrefs"
          },
          "tasksAndApprovals": {
            "$ref": "#/components/schemas/NotificationChannelPrefs"
          },
          "yourSpending": {
            "$ref": "#/components/schemas/NotificationChannelPrefs"
          },
          "accountBalances": {
            "$ref": "#/components/schemas/NotificationChannelPrefs"
          },
          "accounting": {
            "$ref": "#/components/schemas/NotificationChannelPrefs"
          },
          "billPay": {
            "$ref": "#/components/schemas/NotificationChannelPrefs"
          },
          "invoicing": {
            "$ref": "#/components/schemas/NotificationChannelPrefs"
          },
          "collaboration": {
            "$ref": "#/components/schemas/NotificationChannelPrefs"
          }
        },
        "type": "object",
        "title": "NotificationsSettings",
        "description": "User notification preferences grouped by category.\n\nCategories are UI groupings over `NotificationType`. Mapping lives in\n`NOTIFICATION_TYPE_CATEGORY`. Defaults to all channels enabled."
      },
      "OnchainAccountInput": {
        "properties": {
          "accountType": {
            "type": "string",
            "const": "onchain",
            "title": "Accounttype",
            "default": "onchain"
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "walletAddress": {
            "type": "string",
            "title": "Walletaddress"
          },
          "chainId": {
            "$ref": "#/components/schemas/OneClickChain"
          },
          "currency": {
            "type": "string",
            "title": "Currency"
          }
        },
        "type": "object",
        "required": [
          "walletAddress",
          "chainId",
          "currency"
        ],
        "title": "OnchainAccountInput",
        "description": "Onchain wallet contact input."
      },
      "OnchainWalletResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "address": {
            "type": "string",
            "title": "Address"
          },
          "chains": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Chains"
          },
          "daoMembers": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Daomembers"
          },
          "memo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Memo"
          },
          "trackTransactions": {
            "type": "boolean",
            "title": "Tracktransactions"
          },
          "viewOnly": {
            "type": "boolean",
            "title": "Viewonly"
          },
          "usdBalance": {
            "type": "number",
            "title": "Usdbalance"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "address",
          "chains",
          "trackTransactions",
          "viewOnly",
          "usdBalance",
          "createdAt"
        ],
        "title": "OnchainWalletResponse",
        "description": "Imported onchain wallet."
      },
      "OneClickChain": {
        "type": "string",
        "enum": [
          "eth",
          "bsc",
          "avax",
          "op",
          "arb",
          "pol",
          "sol",
          "base",
          "gnosis",
          "tron",
          "xrp",
          "zec",
          "doge",
          "ltc",
          "btc",
          "cardano",
          "bera",
          "sui",
          "near",
          "near_intents",
          "xlayer",
          "plasma",
          "ton",
          "stellar",
          "monad",
          "starknet",
          "aptos",
          "adi",
          "bch"
        ],
        "title": "OneClickChain",
        "description": "1click chain codes."
      },
      "ParseIbanTextRequest": {
        "properties": {
          "text": {
            "type": "string",
            "maxLength": 5000,
            "minLength": 10,
            "title": "Text"
          }
        },
        "type": "object",
        "required": [
          "text"
        ],
        "title": "ParseIbanTextRequest",
        "description": "Request to parse plain text and extract IBAN data."
      },
      "PasskeyResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "deviceId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Deviceid"
          },
          "deviceName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Devicename"
          },
          "deviceType": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Devicetype"
          },
          "passkeyId": {
            "type": "string",
            "title": "Passkeyid"
          },
          "passkeyPk": {
            "type": "string",
            "title": "Passkeypk"
          },
          "pkType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PasskeyType"
              },
              {
                "type": "null"
              }
            ]
          },
          "lastLoginIp": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastloginip"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          },
          "lastUsedAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastusedat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "passkeyId",
          "passkeyPk",
          "createdAt"
        ],
        "title": "PasskeyResponse",
        "description": "Response for a single passkey."
      },
      "PasskeyType": {
        "type": "string",
        "enum": [
          "ble",
          "hybrid",
          "internal",
          "nfc",
          "usb"
        ],
        "title": "PasskeyType",
        "description": "Passkey authenticator transport type."
      },
      "PayProductRequest": {
        "properties": {
          "originChain": {
            "type": "string",
            "title": "Originchain"
          },
          "originToken": {
            "type": "string",
            "title": "Origintoken"
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amount"
          },
          "buyerEmail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Buyeremail"
          },
          "memo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Memo"
          },
          "clientReferenceId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Clientreferenceid"
          },
          "invoiceId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invoiceid"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "default": {}
          }
        },
        "type": "object",
        "required": [
          "originChain",
          "originToken"
        ],
        "title": "PayProductRequest"
      },
      "PayinQuoteRequest": {
        "properties": {
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amount"
          },
          "currency": {
            "type": "string",
            "title": "Currency"
          },
          "originChainId": {
            "$ref": "#/components/schemas/OneClickChain"
          },
          "swapType": {
            "$ref": "#/components/schemas/SwapType",
            "default": "FLEX_INPUT"
          }
        },
        "type": "object",
        "required": [
          "currency",
          "originChainId"
        ],
        "title": "PayinQuoteRequest",
        "description": "Request for cross-chain payin quote."
      },
      "PayinSubmitRequest": {
        "properties": {
          "depositAddress": {
            "type": "string",
            "title": "Depositaddress"
          }
        },
        "type": "object",
        "required": [
          "depositAddress"
        ],
        "title": "PayinSubmitRequest",
        "description": "Request to materialize a 1click PAYIN by deposit address."
      },
      "PaymasterRawRequest": {
        "properties": {
          "userOp": {
            "$ref": "#/components/schemas/UserOperationV06"
          }
        },
        "type": "object",
        "required": [
          "userOp"
        ],
        "title": "PaymasterRawRequest",
        "description": "A fully-built ERC-4337 v0.6 `UserOperation` to push through\n`EntryPoint.handleOps` directly from the backend EOA.\n\nThe backend acts as the bundler itself: it ABI-encodes\n`handleOps([userOp], beneficiary)` against the canonical v0.6\nEntryPoint and broadcasts an EIP-1559 tx from the CDP \"owner\"\nserver account, paying gas in ETH. There is no third-party\npaymaster / bundler service involvement.\n\n`userOp` follows the JSON-RPC `eth_sendUserOperation` shape exactly\n— camelCase keys, all numeric fields as `0x`-hex strings, all byte\nfields as `0x`-hex strings, signature already applied. See\n`UserOperationV06` for the full field list."
      },
      "PaymasterRawResponse": {
        "properties": {
          "userOpHash": {
            "type": "string",
            "title": "Userophash"
          },
          "txHash": {
            "type": "string",
            "title": "Txhash"
          },
          "signer": {
            "type": "string",
            "title": "Signer"
          },
          "entryPoint": {
            "type": "string",
            "title": "Entrypoint"
          },
          "sender": {
            "type": "string",
            "title": "Sender"
          },
          "beneficiary": {
            "type": "string",
            "title": "Beneficiary"
          },
          "blockNumber": {
            "type": "integer",
            "title": "Blocknumber"
          },
          "status": {
            "type": "integer",
            "title": "Status"
          },
          "gasUsed": {
            "type": "integer",
            "title": "Gasused"
          },
          "logsCount": {
            "type": "integer",
            "title": "Logscount"
          }
        },
        "type": "object",
        "required": [
          "userOpHash",
          "txHash",
          "signer",
          "entryPoint",
          "sender",
          "beneficiary",
          "blockNumber",
          "status",
          "gasUsed",
          "logsCount"
        ],
        "title": "PaymasterRawResponse",
        "description": "Response for /wallet/paymaster_raw.\n\nThe backend EOA submitted `EntryPoint.handleOps([userOp], beneficiary)`\non Base mainnet and waited for the receipt. All fields reflect the\non-chain outcome — including reverts. A `status == 0` means the tx\nwas mined but the EntryPoint reverted (e.g. `AA24 signature error`,\n`AA33 reverted (or OOG)`); the tx hash is still real and can be\ninspected on basescan."
      },
      "PaymentTransactionResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "productId": {
            "type": "string",
            "format": "uuid",
            "title": "Productid"
          },
          "ocQuoteId": {
            "type": "string",
            "title": "Ocquoteid"
          },
          "clientReferenceId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Clientreferenceid"
          },
          "memo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Memo"
          },
          "usdAmount": {
            "type": "string",
            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
            "title": "Usdamount"
          },
          "transactionId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transactionid"
          },
          "buyerEmail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Buyeremail"
          },
          "invoiceId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invoiceid"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "default": {}
          },
          "expiresAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expiresat"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "productId",
          "ocQuoteId",
          "usdAmount",
          "status",
          "createdAt"
        ],
        "title": "PaymentTransactionResponse"
      },
      "PayoutQuoteDryRunRequest": {
        "properties": {
          "rail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rail"
          },
          "amount": {
            "type": "number",
            "title": "Amount"
          },
          "type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Type"
          },
          "tokenTo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tokento"
          },
          "chainTo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Chainto"
          }
        },
        "type": "object",
        "required": [
          "amount"
        ],
        "title": "PayoutQuoteDryRunRequest",
        "description": "Request for approximate payout quote without contact."
      },
      "PayoutQuoteDryRunResponse": {
        "properties": {
          "currencyTo": {
            "type": "string",
            "title": "Currencyto"
          },
          "amountTo": {
            "type": "number",
            "title": "Amountto"
          },
          "fee": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fee"
          },
          "fixedFee": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fixedfee"
          }
        },
        "type": "object",
        "required": [
          "currencyTo",
          "amountTo"
        ],
        "title": "PayoutQuoteDryRunResponse",
        "description": "Approximate payout quote response without provider-side activation."
      },
      "PayoutQuoteRequest": {
        "properties": {
          "contactId": {
            "type": "string",
            "format": "uuid",
            "title": "Contactid"
          },
          "amount": {
            "type": "number",
            "title": "Amount"
          },
          "swapType": {
            "$ref": "#/components/schemas/SwapType",
            "default": "FLEX_INPUT"
          }
        },
        "type": "object",
        "required": [
          "contactId",
          "amount"
        ],
        "title": "PayoutQuoteRequest",
        "description": "Request for payout quote to contact."
      },
      "PayoutStatusResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "state": {
            "type": "string",
            "title": "State"
          },
          "fromAmount": {
            "type": "number",
            "title": "Fromamount"
          },
          "fromCurrency": {
            "type": "string",
            "title": "Fromcurrency"
          },
          "toAmount": {
            "type": "number",
            "title": "Toamount"
          },
          "toCurrency": {
            "type": "string",
            "title": "Tocurrency"
          },
          "maskedIban": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maskediban"
          }
        },
        "type": "object",
        "required": [
          "id",
          "state",
          "fromAmount",
          "fromCurrency",
          "toAmount",
          "toCurrency"
        ],
        "title": "PayoutStatusResponse",
        "description": "Response with payout status."
      },
      "PendingKybResponse": {
        "properties": {
          "users": {
            "items": {
              "$ref": "#/components/schemas/PendingKybUser"
            },
            "type": "array",
            "title": "Users"
          }
        },
        "type": "object",
        "required": [
          "users"
        ],
        "title": "PendingKybResponse"
      },
      "PendingKybUser": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "email": {
            "type": "string",
            "title": "Email"
          },
          "entityName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entityname"
          },
          "kycStatus": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Kycstatus"
          },
          "isBusiness": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Isbusiness"
          },
          "rails": {
            "items": {
              "$ref": "#/components/schemas/FiatRailResponse"
            },
            "type": "array",
            "title": "Rails",
            "default": []
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "title": "Updatedat"
          },
          "lastUpdate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastupdate"
          },
          "chats": {
            "items": {
              "$ref": "#/components/schemas/app__schemas__routers__admin__admin__ChatResponse"
            },
            "type": "array",
            "title": "Chats",
            "default": []
          },
          "signedToken": {
            "type": "string",
            "title": "Signedtoken"
          },
          "inviteCode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invitecode"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "tag": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tag"
          },
          "usdBalance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Usdbalance"
          },
          "bankRequested": {
            "$ref": "#/components/schemas/BankRequestedSettings-Output"
          }
        },
        "type": "object",
        "required": [
          "id",
          "email",
          "createdAt",
          "updatedAt",
          "signedToken"
        ],
        "title": "PendingKybUser"
      },
      "PendingKycResponse": {
        "properties": {
          "users": {
            "items": {
              "$ref": "#/components/schemas/PendingKycUser"
            },
            "type": "array",
            "title": "Users"
          }
        },
        "type": "object",
        "required": [
          "users"
        ],
        "title": "PendingKycResponse"
      },
      "PendingKycUser": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "email": {
            "type": "string",
            "title": "Email"
          },
          "firstName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Firstname"
          },
          "lastName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastname"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "birthDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Birthdate"
          },
          "country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country"
          },
          "isBusiness": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Isbusiness"
          },
          "kycStatus": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Kycstatus"
          },
          "kycLink": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Kyclink"
          },
          "inviteCode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invitecode"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "title": "Updatedat"
          },
          "signedToken": {
            "type": "string",
            "title": "Signedtoken"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "tag": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tag"
          },
          "usdBalance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Usdbalance"
          },
          "totalChats": {
            "type": "integer",
            "title": "Totalchats",
            "default": 0
          },
          "bankRequested": {
            "$ref": "#/components/schemas/BankRequestedSettings-Output"
          }
        },
        "type": "object",
        "required": [
          "id",
          "email",
          "createdAt",
          "updatedAt",
          "signedToken"
        ],
        "title": "PendingKycUser"
      },
      "PendingWithdrawal": {
        "properties": {
          "accountAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountaddress"
          },
          "tokenAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tokenaddress"
          },
          "toAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Toaddress"
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amount"
          },
          "validAfter": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Validafter",
            "description": "Earliest timestamp at which the withdrawal may be executed"
          },
          "hash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hash"
          },
          "callData": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Calldata"
          }
        },
        "type": "object",
        "title": "PendingWithdrawal",
        "description": "Single pending withdrawal request as returned by Wirex."
      },
      "PendingWithdrawalsResponse": {
        "properties": {
          "withdrawals": {
            "items": {
              "$ref": "#/components/schemas/PendingWithdrawal"
            },
            "type": "array",
            "title": "Withdrawals"
          },
          "total": {
            "type": "integer",
            "title": "Total"
          }
        },
        "type": "object",
        "required": [
          "withdrawals",
          "total"
        ],
        "title": "PendingWithdrawalsResponse",
        "description": "List of pending withdrawals for a user."
      },
      "PermissionStatus": {
        "type": "string",
        "enum": [
          "active",
          "revoked"
        ],
        "title": "PermissionStatus",
        "description": "Spend permission status."
      },
      "PermissionsResponse": {
        "properties": {
          "permissions": {
            "items": {
              "$ref": "#/components/schemas/SpendPermissionResponse"
            },
            "type": "array",
            "title": "Permissions"
          }
        },
        "type": "object",
        "required": [
          "permissions"
        ],
        "title": "PermissionsResponse",
        "description": "List of active spend permissions."
      },
      "PrepareContractDocumentRequest": {
        "properties": {
          "type": {
            "$ref": "#/components/schemas/ContractDocumentTemplateType"
          },
          "text": {
            "type": "string",
            "minLength": 1,
            "title": "Text"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "fileName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Filename"
          }
        },
        "type": "object",
        "required": [
          "type",
          "text"
        ],
        "title": "PrepareContractDocumentRequest",
        "description": "Persist already prepared markdown as a document file."
      },
      "PrepareContractDocumentResponse": {
        "properties": {
          "documentId": {
            "type": "string",
            "format": "uuid",
            "title": "Documentid"
          },
          "documentType": {
            "type": "string",
            "title": "Documenttype"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "fileName": {
            "type": "string",
            "title": "Filename"
          },
          "downloadLink": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Downloadlink"
          }
        },
        "type": "object",
        "required": [
          "documentId",
          "documentType",
          "fileName"
        ],
        "title": "PrepareContractDocumentResponse"
      },
      "PrivyLoginRequest": {
        "properties": {
          "signature": {
            "type": "string",
            "title": "Signature"
          },
          "email": {
            "type": "string",
            "title": "Email"
          },
          "address": {
            "type": "string",
            "title": "Address"
          },
          "nonce": {
            "type": "integer",
            "title": "Nonce"
          }
        },
        "type": "object",
        "required": [
          "signature",
          "email",
          "address",
          "nonce"
        ],
        "title": "PrivyLoginRequest",
        "description": "Request to link a Privy wallet."
      },
      "PrivyLoginResponse": {
        "properties": {
          "refreshToken": {
            "type": "string",
            "title": "Refreshtoken"
          },
          "userId": {
            "type": "string",
            "title": "Userid"
          },
          "email": {
            "type": "string",
            "title": "Email"
          },
          "isNewUser": {
            "type": "boolean",
            "title": "Isnewuser",
            "default": false
          },
          "privyAddress": {
            "type": "string",
            "title": "Privyaddress"
          },
          "baseSmartWallet": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Basesmartwallet"
          }
        },
        "type": "object",
        "required": [
          "refreshToken",
          "userId",
          "email",
          "privyAddress"
        ],
        "title": "PrivyLoginResponse",
        "description": "Response after Privy wallet auth."
      },
      "ProductCreateRequest": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "images": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Images",
            "default": []
          },
          "url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Url"
          },
          "price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Price"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "USD"
          },
          "minAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minamount"
          },
          "maxAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maxamount"
          },
          "presetAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Presetamount"
          },
          "maxQuantity": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maxquantity"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "default": {}
          },
          "webhookUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Webhookurl"
          },
          "successUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Successurl"
          },
          "cancelUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cancelurl"
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "ProductCreateRequest"
      },
      "ProductResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "images": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Images",
            "default": []
          },
          "url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Url"
          },
          "price": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Price"
          },
          "currency": {
            "type": "string",
            "title": "Currency"
          },
          "minAmount": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minamount"
          },
          "maxAmount": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maxamount"
          },
          "presetAmount": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Presetamount"
          },
          "maxQuantity": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maxquantity"
          },
          "soldCount": {
            "type": "integer",
            "title": "Soldcount"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "default": {}
          },
          "webhookUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Webhookurl"
          },
          "successUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Successurl"
          },
          "cancelUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cancelurl"
          },
          "active": {
            "type": "boolean",
            "title": "Active"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "title": "Updatedat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "currency",
          "soldCount",
          "active",
          "createdAt",
          "updatedAt"
        ],
        "title": "ProductResponse"
      },
      "ProductUpdateRequest": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "images": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Images"
          },
          "url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Url"
          },
          "price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Price"
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Currency"
          },
          "minAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minamount"
          },
          "maxAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maxamount"
          },
          "presetAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Presetamount"
          },
          "maxQuantity": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maxquantity"
          },
          "metadata": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Metadata"
          },
          "webhookUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Webhookurl"
          },
          "successUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Successurl"
          },
          "cancelUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cancelurl"
          },
          "active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Active"
          }
        },
        "type": "object",
        "title": "ProductUpdateRequest"
      },
      "PublicInvoiceContractInfo": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "documentName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Documentname"
          },
          "documentLink": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Documentlink"
          }
        },
        "type": "object",
        "required": [
          "id"
        ],
        "title": "PublicInvoiceContractInfo"
      },
      "PublicInvoiceItem": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "quantity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Quantity"
          },
          "price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Price"
          }
        },
        "type": "object",
        "title": "PublicInvoiceItem"
      },
      "PublicInvoiceResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "amount": {
            "type": "number",
            "title": "Amount"
          },
          "currency": {
            "type": "string",
            "title": "Currency"
          },
          "comment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment"
          },
          "invoiceNumber": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invoicenumber"
          },
          "issuedDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Issueddate"
          },
          "dueDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duedate"
          },
          "status": {
            "$ref": "#/components/schemas/InvoiceStatus"
          },
          "client": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/InvoiceParticipant"
              },
              {
                "type": "null"
              }
            ]
          },
          "contractor": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/InvoiceParticipant"
              },
              {
                "type": "null"
              }
            ]
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicInvoiceItem"
            },
            "type": "array",
            "title": "Items"
          },
          "paymentMethods": {
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/IBANAccountDetails-Output"
                },
                {
                  "$ref": "#/components/schemas/USExternalAccountDetails-Output"
                },
                {
                  "$ref": "#/components/schemas/SwiftAccountDetails-Output"
                },
                {
                  "$ref": "#/components/schemas/ContactWalletResponse"
                },
                {
                  "$ref": "#/components/schemas/EmailAccountInput"
                }
              ]
            },
            "type": "array",
            "title": "Paymentmethods",
            "default": []
          },
          "contract": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PublicInvoiceContractInfo"
              },
              {
                "type": "null"
              }
            ]
          },
          "invoiceLink": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invoicelink"
          },
          "documents": {
            "items": {
              "$ref": "#/components/schemas/InvoiceDocumentInfo"
            },
            "type": "array",
            "title": "Documents",
            "default": []
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "amount",
          "currency",
          "status",
          "items",
          "createdAt"
        ],
        "title": "PublicInvoiceResponse"
      },
      "PublicKeyResponse": {
        "properties": {
          "publicKey": {
            "type": "string",
            "title": "Publickey"
          }
        },
        "type": "object",
        "required": [
          "publicKey"
        ],
        "title": "PublicKeyResponse"
      },
      "PublicProductResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "images": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Images",
            "default": []
          },
          "url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Url"
          },
          "price": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Price"
          },
          "currency": {
            "type": "string",
            "title": "Currency"
          },
          "minAmount": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minamount"
          },
          "maxAmount": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maxamount"
          },
          "presetAmount": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Presetamount"
          },
          "merchantName": {
            "type": "string",
            "title": "Merchantname"
          },
          "available": {
            "type": "boolean",
            "title": "Available"
          },
          "successUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Successurl"
          },
          "cancelUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cancelurl"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "currency",
          "merchantName",
          "available"
        ],
        "title": "PublicProductResponse",
        "description": "Product info for anonymous buyers."
      },
      "PushTokenRequest": {
        "properties": {
          "pushToken": {
            "type": "string",
            "title": "Pushtoken",
            "description": "Push notification token (FCM/APNs)"
          },
          "deviceName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Devicename",
            "description": "Human-readable device name"
          }
        },
        "type": "object",
        "required": [
          "pushToken"
        ],
        "title": "PushTokenRequest",
        "description": "Schema for setting push notification token. Device is identified by header."
      },
      "RateResponse": {
        "properties": {
          "bankTransfer": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Banktransfer"
          },
          "card": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Card"
          },
          "usdRate": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Usdrate"
          }
        },
        "type": "object",
        "title": "RateResponse",
        "description": "Combined FX rate response."
      },
      "ReferrerInfo": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name"
          },
          "email": {
            "type": "string",
            "title": "Email"
          },
          "avatarUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatarurl"
          }
        },
        "type": "object",
        "required": [
          "name",
          "email"
        ],
        "title": "ReferrerInfo",
        "description": "Lightweight info about the user who referred this user."
      },
      "RefreshRequest": {
        "properties": {
          "userId": {
            "type": "string",
            "title": "Userid",
            "description": "Target user UUID"
          }
        },
        "type": "object",
        "required": [
          "userId"
        ],
        "title": "RefreshRequest",
        "description": "Request for refreshing a session token."
      },
      "RewardItem": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "date": {
            "type": "string",
            "format": "date-time",
            "title": "Date"
          },
          "refereeName": {
            "type": "string",
            "title": "Refereename"
          },
          "refereeId": {
            "type": "string",
            "format": "uuid",
            "title": "Refereeid"
          },
          "amount": {
            "type": "string",
            "title": "Amount"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "USD"
          },
          "type": {
            "$ref": "#/components/schemas/RewardType"
          }
        },
        "type": "object",
        "required": [
          "id",
          "date",
          "refereeName",
          "refereeId",
          "amount",
          "type"
        ],
        "title": "RewardItem",
        "description": "A single referral reward earned by the current user."
      },
      "RewardType": {
        "type": "string",
        "enum": [
          "kyb",
          "volume"
        ],
        "title": "RewardType",
        "description": "Referral reward type."
      },
      "RewardsListResponse": {
        "properties": {
          "rewards": {
            "items": {
              "$ref": "#/components/schemas/RewardItem"
            },
            "type": "array",
            "title": "Rewards"
          },
          "totalAmount": {
            "type": "string",
            "title": "Totalamount"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "USD"
          }
        },
        "type": "object",
        "required": [
          "rewards",
          "totalAmount"
        ],
        "title": "RewardsListResponse",
        "description": "List of referral rewards earned by the current user."
      },
      "RtnLiteInfoResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "bank": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FincodesBank"
              },
              {
                "type": "null"
              }
            ]
          },
          "parsed_address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "id"
        ],
        "title": "RtnLiteInfoResponse",
        "description": "Simplified RTN response with only bank and address."
      },
      "SamlTokenResponse": {
        "properties": {
          "accessToken": {
            "type": "string",
            "title": "Accesstoken"
          },
          "tokenType": {
            "type": "string",
            "title": "Tokentype",
            "default": "bearer"
          },
          "email": {
            "type": "string",
            "title": "Email"
          }
        },
        "type": "object",
        "required": [
          "accessToken",
          "email"
        ],
        "title": "SamlTokenResponse",
        "description": "Admin JWT returned after successful SAML assertion."
      },
      "SendKybAgentMessageRequest": {
        "properties": {
          "text": {
            "type": "string",
            "title": "Text",
            "description": "User text; may be empty if only attachments",
            "default": ""
          },
          "attachments": {
            "items": {
              "$ref": "#/components/schemas/AgentAttachment"
            },
            "type": "array",
            "title": "Attachments"
          }
        },
        "type": "object",
        "title": "SendKybAgentMessageRequest",
        "description": "Body for posting a new user turn to the agent."
      },
      "SendMessageRequest": {
        "properties": {
          "platform": {
            "$ref": "#/components/schemas/ChatPlatform"
          },
          "text": {
            "type": "string",
            "title": "Text"
          },
          "role": {
            "$ref": "#/components/schemas/ChatRole",
            "default": "hevn"
          },
          "chatType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ChatType"
              },
              {
                "type": "null"
              }
            ]
          },
          "documentIds": {
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "type": "array",
            "title": "Documentids"
          },
          "rail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rail"
          }
        },
        "type": "object",
        "required": [
          "platform",
          "text"
        ],
        "title": "SendMessageRequest",
        "description": "Admin request to send a support message."
      },
      "SendOtpResponse": {
        "properties": {
          "sessionId": {
            "type": "string",
            "title": "Sessionid"
          }
        },
        "type": "object",
        "required": [
          "sessionId"
        ],
        "title": "SendOtpResponse",
        "description": "Response after sending OTP."
      },
      "SepaAccountInput": {
        "properties": {
          "accountHolderType": {
            "$ref": "#/components/schemas/AlignAccountHolderType"
          },
          "accountHolderFirstName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderfirstname"
          },
          "accountHolderLastName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderlastname"
          },
          "accountHolderBusinessName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderbusinessname"
          },
          "accountType": {
            "type": "string",
            "const": "sepa",
            "title": "Accounttype",
            "default": "sepa"
          },
          "iban": {
            "type": "string",
            "title": "Iban"
          },
          "bic": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bic"
          },
          "country": {
            "type": "string",
            "title": "Country"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "EUR"
          },
          "bankName": {
            "type": "string",
            "title": "Bankname"
          },
          "relationship": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__schemas__base__ContactRelationship"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "accountHolderType",
          "iban",
          "country",
          "bankName"
        ],
        "title": "SepaAccountInput",
        "description": "SEPA bank contact input."
      },
      "ServiceContractPreviewFields": {
        "properties": {
          "effectiveDate": {
            "type": "string",
            "title": "Effectivedate"
          },
          "clientName": {
            "type": "string",
            "title": "Clientname"
          },
          "serviceProviderName": {
            "type": "string",
            "title": "Serviceprovidername"
          },
          "services": {
            "type": "string",
            "title": "Services"
          },
          "paymentTerms": {
            "type": "string",
            "title": "Paymentterms"
          },
          "invoiceCycle": {
            "type": "string",
            "title": "Invoicecycle"
          },
          "paymentDue": {
            "type": "string",
            "title": "Paymentdue"
          },
          "confidentialityTerms": {
            "type": "string",
            "title": "Confidentialityterms"
          },
          "intellectualPropertyTerms": {
            "type": "string",
            "title": "Intellectualpropertyterms"
          }
        },
        "type": "object",
        "required": [
          "effectiveDate",
          "clientName",
          "serviceProviderName",
          "services",
          "paymentTerms",
          "invoiceCycle",
          "paymentDue",
          "confidentialityTerms",
          "intellectualPropertyTerms"
        ],
        "title": "ServiceContractPreviewFields"
      },
      "SessionTokenResponse": {
        "properties": {
          "accessToken": {
            "type": "string",
            "title": "Accesstoken",
            "description": "JWT access token (10 min)"
          },
          "tokenType": {
            "type": "string",
            "title": "Tokentype",
            "default": "bearer"
          },
          "expiresIn": {
            "type": "integer",
            "title": "Expiresin",
            "description": "Token TTL in seconds",
            "default": 600
          }
        },
        "type": "object",
        "required": [
          "accessToken"
        ],
        "title": "SessionTokenResponse",
        "description": "Response with short-lived JWT session token."
      },
      "SetCardLabelRequest": {
        "properties": {
          "label": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64
              },
              {
                "type": "null"
              }
            ],
            "title": "Label",
            "description": "Label/nickname (null to clear)"
          }
        },
        "type": "object",
        "title": "SetCardLabelRequest",
        "description": "Request to set a user-defined card label."
      },
      "SetCardLimitRequest": {
        "properties": {
          "dailyLimit": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dailylimit",
            "description": "Daily limit. Set to -1 to disable."
          },
          "monthlyLimit": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Monthlylimit",
            "description": "Monthly limit. Set to -1 to disable."
          },
          "lifetimeLimit": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lifetimelimit",
            "description": "Lifetime limit. Set to -1 to disable."
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "description": "Limit currency.",
            "default": "EUR"
          }
        },
        "type": "object",
        "title": "SetCardLimitRequest",
        "description": "Request to set card spending limits."
      },
      "SetPhoneRequest": {
        "properties": {
          "phoneNumber": {
            "type": "string",
            "title": "Phonenumber",
            "description": "Phone with country code, e.g. +33755881784"
          }
        },
        "type": "object",
        "required": [
          "phoneNumber"
        ],
        "title": "SetPhoneRequest",
        "description": "Request to set phone number."
      },
      "SetPlanRequest": {
        "properties": {
          "plan": {
            "type": "string",
            "pattern": "^(free|basic|pro)$",
            "title": "Plan"
          }
        },
        "type": "object",
        "required": [
          "plan"
        ],
        "title": "SetPlanRequest"
      },
      "SetReferralRequest": {
        "properties": {
          "email": {
            "type": "string",
            "title": "Email"
          }
        },
        "type": "object",
        "required": [
          "email"
        ],
        "title": "SetReferralRequest"
      },
      "ShareKybLinkRequest": {
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "title": "Email"
          }
        },
        "type": "object",
        "required": [
          "email"
        ],
        "title": "ShareKybLinkRequest",
        "description": "Request schema for sharing a KYB link via email."
      },
      "ShareholderDraftResponse": {
        "properties": {
          "localId": {
            "type": "string",
            "title": "Localid"
          },
          "firstName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Firstname"
          },
          "lastName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastname"
          },
          "birthDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Birthdate"
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title"
          },
          "taxId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Taxid"
          },
          "ownershipPercentage": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 100,
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "title": "Ownershippercentage"
          },
          "hasControl": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hascontrol"
          },
          "isSigner": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Issigner"
          },
          "isDirector": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Isdirector"
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FiatShareholderAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "identityDocuments": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/FiatIdentityDocument"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Identitydocuments"
          },
          "documentIds": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Documentids"
          },
          "documents": {
            "items": {
              "$ref": "#/components/schemas/DocumentDraftInfo"
            },
            "type": "array",
            "title": "Documents"
          },
          "swipeluxId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Swipeluxid"
          }
        },
        "type": "object",
        "required": [
          "localId"
        ],
        "title": "ShareholderDraftResponse",
        "description": "Shareholder in response with resolved documents. All fields optional for partial filling."
      },
      "SignLoginRequest": {
        "properties": {
          "signatures": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Signatures"
          },
          "message": {
            "type": "string",
            "title": "Message"
          }
        },
        "type": "object",
        "required": [
          "signatures",
          "message"
        ],
        "title": "SignLoginRequest",
        "description": "Request to sign a login message."
      },
      "SlxAccountHolderRelationship": {
        "type": "string",
        "enum": [
          "self",
          "employee",
          "independent_contractor",
          "vendor",
          "supplier",
          "subsidiary",
          "affiliate",
          "merchant",
          "partner",
          "customer",
          "landlord",
          "family",
          "other"
        ],
        "title": "SlxAccountHolderRelationship",
        "description": "Relationship of the account holder to the customer."
      },
      "SlxDocumentType": {
        "type": "string",
        "enum": [
          "certificate_of_incorporation",
          "formation_document",
          "power_of_attorney",
          "corporate_structure",
          "director_structure",
          "proof_of_address",
          "annual_financial_statements",
          "articles_of_association",
          "audit_report",
          "bank_reference_letter",
          "bank_statement",
          "banking_details",
          "birth_certificate",
          "business_license",
          "business_plan",
          "certificate_of_good_standing",
          "credit_report",
          "criminal_record_check",
          "cv_resume",
          "driving_license",
          "education_certificate",
          "financial_projections",
          "insurance_policy",
          "lease_agreement",
          "list_of_authorized_signatories",
          "marriage_certificate",
          "national_id",
          "operating_agreement",
          "partnership_agreement",
          "professional_license",
          "reference_letter",
          "register_of_members",
          "residence_permit",
          "shareholding_structure",
          "social_security_document",
          "source_of_funds_declaration",
          "tax_identification_document",
          "tax_returns",
          "trade_references",
          "vat_registration",
          "vendor_contracts",
          "visa",
          "wealth_statement",
          "contract",
          "invoice",
          "loan_agreement",
          "passport_front",
          "passport_back",
          "id_card_front",
          "id_card_back",
          "drivers_license_front",
          "drivers_license_back",
          "other"
        ],
        "title": "SlxDocumentType",
        "description": "Document types for upload."
      },
      "SlxRailOverviewBlocker": {
        "properties": {
          "code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Code"
          },
          "message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Message"
          }
        },
        "type": "object",
        "title": "SlxRailOverviewBlocker",
        "description": "Request blocker in Swipelux v2 rail overview."
      },
      "SmartWalletPermissionResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "permissionHash": {
            "type": "string",
            "title": "Permissionhash"
          },
          "status": {
            "$ref": "#/components/schemas/PermissionStatus"
          },
          "account": {
            "type": "string",
            "title": "Account"
          },
          "spender": {
            "type": "string",
            "title": "Spender"
          },
          "token": {
            "type": "string",
            "title": "Token"
          },
          "allowance": {
            "type": "string",
            "title": "Allowance"
          },
          "period": {
            "type": "integer",
            "title": "Period"
          },
          "start": {
            "type": "integer",
            "title": "Start"
          },
          "end": {
            "type": "integer",
            "title": "End"
          },
          "salt": {
            "type": "string",
            "title": "Salt"
          },
          "remaining": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remaining"
          },
          "txHash": {
            "type": "string",
            "title": "Txhash"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "permissionHash",
          "status",
          "account",
          "spender",
          "token",
          "allowance",
          "period",
          "start",
          "end",
          "salt",
          "remaining",
          "txHash",
          "createdAt"
        ],
        "title": "SmartWalletPermissionResponse"
      },
      "SortOrder": {
        "type": "string",
        "enum": [
          "asc",
          "desc"
        ],
        "title": "SortOrder",
        "description": "Sort direction."
      },
      "SpendPermissionResponse": {
        "properties": {
          "permissionHash": {
            "type": "string",
            "title": "Permissionhash"
          },
          "account": {
            "type": "string",
            "title": "Account"
          },
          "spender": {
            "type": "string",
            "title": "Spender"
          },
          "token": {
            "type": "string",
            "title": "Token"
          },
          "allowance": {
            "type": "string",
            "title": "Allowance"
          },
          "remaining": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remaining"
          },
          "period": {
            "type": "integer",
            "title": "Period"
          },
          "start": {
            "type": "integer",
            "title": "Start"
          },
          "end": {
            "type": "integer",
            "title": "End"
          },
          "salt": {
            "type": "string",
            "title": "Salt"
          },
          "extraData": {
            "type": "string",
            "title": "Extradata",
            "default": "0x"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "txHash": {
            "type": "string",
            "title": "Txhash"
          },
          "createdAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "permissionHash",
          "account",
          "spender",
          "token",
          "allowance",
          "period",
          "start",
          "end",
          "salt",
          "status",
          "txHash"
        ],
        "title": "SpendPermissionResponse",
        "description": "Spend permission for a smart wallet."
      },
      "StatusResponse": {
        "properties": {
          "status": {
            "type": "string",
            "title": "Status",
            "default": "ok"
          }
        },
        "type": "object",
        "title": "StatusResponse",
        "description": "Simple status response."
      },
      "SubmitDepositRequest": {
        "properties": {
          "txHash": {
            "type": "string",
            "title": "Txhash"
          },
          "chainId": {
            "type": "string",
            "title": "Chainid"
          }
        },
        "type": "object",
        "required": [
          "txHash",
          "chainId"
        ],
        "title": "SubmitDepositRequest"
      },
      "SubmitPayoutQuoteRequest": {
        "properties": {
          "quoteId": {
            "type": "string",
            "title": "Quoteid"
          },
          "contactId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contactid"
          },
          "bankAccountId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bankaccountid"
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amount"
          },
          "destinationChainId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Destinationchainid"
          },
          "toCurrency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tocurrency"
          }
        },
        "type": "object",
        "required": [
          "quoteId"
        ],
        "title": "SubmitPayoutQuoteRequest",
        "description": "Request to activate a payout quote."
      },
      "SubmitPayoutQuoteResponse": {
        "properties": {
          "transferId": {
            "type": "string",
            "title": "Transferid"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "depositAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Depositaddress"
          },
          "depositAmount": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Depositamount"
          },
          "quoteId": {
            "type": "string",
            "title": "Quoteid"
          }
        },
        "type": "object",
        "required": [
          "transferId",
          "status",
          "quoteId"
        ],
        "title": "SubmitPayoutQuoteResponse",
        "description": "Response after activating a payout quote."
      },
      "SubmitSignedJwtRequest": {
        "properties": {
          "sessionKey": {
            "type": "string",
            "title": "Sessionkey",
            "description": "Session key from auth/start"
          },
          "authPayload": {
            "type": "string",
            "title": "Authpayload",
            "description": "JSON auth_payload from TEE attestation"
          },
          "signature": {
            "type": "string",
            "title": "Signature",
            "description": "Base58 Ed25519 signature from TEE"
          }
        },
        "type": "object",
        "required": [
          "sessionKey",
          "authPayload",
          "signature"
        ],
        "title": "SubmitSignedJwtRequest",
        "description": "Request for submitting TEE-signed Google JWT attestation."
      },
      "SupportMessageResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "chatId": {
            "type": "string",
            "format": "uuid",
            "title": "Chatid"
          },
          "role": {
            "type": "string",
            "title": "Role"
          },
          "senderName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sendername"
          },
          "avatarUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatarurl"
          },
          "text": {
            "type": "string",
            "title": "Text"
          },
          "documentIds": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Documentids"
          },
          "rail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rail"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "chatId",
          "role",
          "text",
          "createdAt"
        ],
        "title": "SupportMessageResponse",
        "description": "Single support message."
      },
      "SwapType": {
        "type": "string",
        "enum": [
          "EXACT_INPUT",
          "EXACT_OUTPUT",
          "FLEX_INPUT",
          "ANY_INPUT"
        ],
        "title": "SwapType",
        "description": "Type of swap quote."
      },
      "SwiftAccountDetails-Input": {
        "properties": {
          "bankName": {
            "type": "string",
            "title": "Bankname"
          },
          "bankAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bankaddress"
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Currency"
          },
          "accountHolderType": {
            "$ref": "#/components/schemas/AlignAccountHolderType"
          },
          "accountHolderFirstName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderfirstname"
          },
          "accountHolderLastName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderlastname"
          },
          "accountHolderBusinessName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderbusinessname"
          },
          "accountHolderAddress": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "relationship": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__schemas__base__ContactRelationship"
              },
              {
                "type": "null"
              }
            ]
          },
          "paymentReference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Paymentreference"
          },
          "accountType": {
            "type": "string",
            "const": "swift",
            "title": "Accounttype",
            "default": "swift"
          },
          "swift": {
            "$ref": "#/components/schemas/SwiftDetails"
          }
        },
        "type": "object",
        "required": [
          "bankName",
          "accountHolderType",
          "swift"
        ],
        "title": "SwiftAccountDetails",
        "description": "SWIFT (international wire) external account."
      },
      "SwiftAccountDetails-Output": {
        "properties": {
          "bankName": {
            "type": "string",
            "title": "Bankname"
          },
          "bankAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bankaddress"
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Currency"
          },
          "accountHolderType": {
            "$ref": "#/components/schemas/AlignAccountHolderType"
          },
          "accountHolderFirstName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderfirstname"
          },
          "accountHolderLastName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderlastname"
          },
          "accountHolderBusinessName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderbusinessname"
          },
          "accountHolderAddress": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "relationship": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__schemas__base__ContactRelationship"
              },
              {
                "type": "null"
              }
            ]
          },
          "paymentReference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Paymentreference"
          },
          "accountType": {
            "type": "string",
            "const": "swift",
            "title": "Accounttype",
            "default": "swift"
          },
          "swift": {
            "$ref": "#/components/schemas/SwiftDetails"
          },
          "beneficiaryName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Beneficiaryname",
            "description": "Frontend-only alias derived from account holder fields.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "bankName",
          "accountHolderType",
          "swift",
          "beneficiaryName"
        ],
        "title": "SwiftAccountDetails",
        "description": "SWIFT (international wire) external account."
      },
      "SwiftAccountInput": {
        "properties": {
          "accountHolderType": {
            "$ref": "#/components/schemas/AlignAccountHolderType"
          },
          "accountHolderFirstName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderfirstname"
          },
          "accountHolderLastName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderlastname"
          },
          "accountHolderBusinessName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderbusinessname"
          },
          "accountType": {
            "type": "string",
            "const": "swift",
            "title": "Accounttype",
            "default": "swift"
          },
          "bic": {
            "type": "string",
            "title": "Bic"
          },
          "bankName": {
            "type": "string",
            "title": "Bankname"
          },
          "accountNumber": {
            "type": "string",
            "title": "Accountnumber"
          },
          "country": {
            "type": "string",
            "title": "Country"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "USD"
          },
          "bankAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bankaddress"
          },
          "routingNumber": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Routingnumber"
          },
          "relationship": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__schemas__base__ContactRelationship"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "accountHolderType",
          "bic",
          "bankName",
          "accountNumber",
          "country"
        ],
        "title": "SwiftAccountInput",
        "description": "SWIFT bank contact input."
      },
      "SwiftDetails": {
        "properties": {
          "accountNumber": {
            "type": "string",
            "title": "Accountnumber"
          },
          "routingNumber": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Routingnumber"
          },
          "bic": {
            "type": "string",
            "title": "Bic"
          }
        },
        "type": "object",
        "required": [
          "accountNumber",
          "bic"
        ],
        "title": "SwiftDetails",
        "description": "SWIFT (international wire) account details."
      },
      "TagUpdateRequest": {
        "properties": {
          "tag": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tag"
          }
        },
        "type": "object",
        "title": "TagUpdateRequest",
        "description": "Request to update a transaction tag."
      },
      "TagUpdateResponse": {
        "properties": {
          "onchainTransactionId": {
            "type": "string",
            "title": "Onchaintransactionid"
          },
          "tag": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tag"
          }
        },
        "type": "object",
        "required": [
          "onchainTransactionId"
        ],
        "title": "TagUpdateResponse",
        "description": "Response for tag update."
      },
      "TeamAddRequest": {
        "properties": {
          "email": {
            "type": "string",
            "title": "Email",
            "description": "Email of the user to add"
          }
        },
        "type": "object",
        "required": [
          "email"
        ],
        "title": "TeamAddRequest",
        "description": "Request to add a team member by email."
      },
      "TeamListResponse": {
        "properties": {
          "members": {
            "items": {
              "$ref": "#/components/schemas/TeamMemberResponse"
            },
            "type": "array",
            "title": "Members"
          }
        },
        "type": "object",
        "required": [
          "members"
        ],
        "title": "TeamListResponse",
        "description": "List of team members."
      },
      "TeamMemberResponse": {
        "properties": {
          "userId": {
            "type": "string",
            "title": "Userid"
          },
          "email": {
            "type": "string",
            "title": "Email"
          },
          "baseSmartWallet": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Basesmartwallet"
          },
          "privyAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Privyaddress"
          },
          "role": {
            "type": "string",
            "title": "Role"
          },
          "lastLogin": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastlogin"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "userId",
          "email",
          "role",
          "createdAt"
        ],
        "title": "TeamMemberResponse",
        "description": "Single team member."
      },
      "TemplateDescriptor": {
        "properties": {
          "type": {
            "$ref": "#/components/schemas/ContractDocumentTemplateType"
          },
          "title": {
            "type": "string",
            "title": "Title"
          },
          "description": {
            "type": "string",
            "title": "Description"
          },
          "requiresDocument": {
            "type": "boolean",
            "title": "Requiresdocument",
            "default": false
          },
          "supportsContractGeneration": {
            "type": "boolean",
            "title": "Supportscontractgeneration",
            "default": false
          },
          "supportsInvoicing": {
            "type": "boolean",
            "title": "Supportsinvoicing",
            "default": false
          },
          "fields": {
            "items": {
              "$ref": "#/components/schemas/TemplateField"
            },
            "type": "array",
            "title": "Fields"
          }
        },
        "type": "object",
        "required": [
          "type",
          "title",
          "description"
        ],
        "title": "TemplateDescriptor",
        "description": "Describes a document template and the fields a client must fill."
      },
      "TemplateField": {
        "properties": {
          "key": {
            "type": "string",
            "title": "Key"
          },
          "label": {
            "type": "string",
            "title": "Label"
          },
          "type": {
            "$ref": "#/components/schemas/TemplateFieldType",
            "default": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "required": {
            "type": "boolean",
            "title": "Required",
            "default": false
          },
          "multiline": {
            "type": "boolean",
            "title": "Multiline",
            "default": false
          },
          "source": {
            "$ref": "#/components/schemas/TemplateFieldSource",
            "default": "user"
          },
          "party": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "client",
                  "contractor"
                ]
              },
              {
                "type": "null"
              }
            ],
            "title": "Party"
          },
          "options": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Options"
          },
          "fields": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/TemplateField"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fields"
          },
          "item": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TemplateField"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "key",
          "label"
        ],
        "title": "TemplateField",
        "description": "Single field of a document template, for dynamic discovery.\n\nClients should prompt the user for ``USER`` fields, and for ``PROFILE`` fields only\nwhen the referenced party's value is not already available. ``required`` means the\nfinal document needs a non-empty value, regardless of who provides it.\n\nDescriptors are built from a template's annotated input model by\n``TemplateFieldBuilder``; composite fields nest their shape in :attr:`fields`\n(objects), :attr:`item` (arrays) or :attr:`options` (enums)."
      },
      "TemplateFieldSource": {
        "type": "string",
        "enum": [
          "user",
          "profile",
          "computed",
          "default"
        ],
        "title": "TemplateFieldSource",
        "description": "Where a template field's value comes from.\n\n* ``USER`` — must be entered by the user.\n* ``PROFILE`` — taken from a party's profile when available; if the profile is\n  incomplete or the party is not registered yet, it must be collected from the user.\n* ``COMPUTED`` — generated server-side (current date, reference, derived legal terms).\n* ``DEFAULT`` — filled with a boilerplate default; no input required."
      },
      "TemplateFieldType": {
        "type": "string",
        "enum": [
          "string",
          "text",
          "number",
          "decimal",
          "date",
          "datetime",
          "boolean",
          "enum",
          "object",
          "array"
        ],
        "title": "TemplateFieldType",
        "description": "Structural type of a template field, so clients can render the right input.\n\nComposite types carry their shape: ``OBJECT`` populates :attr:`TemplateField.fields`,\n``ARRAY`` populates :attr:`TemplateField.item`, and ``ENUM`` populates\n:attr:`TemplateField.options`."
      },
      "TemplateListResponse": {
        "properties": {
          "templates": {
            "items": {
              "$ref": "#/components/schemas/TemplateDescriptor"
            },
            "type": "array",
            "title": "Templates"
          }
        },
        "type": "object",
        "required": [
          "templates"
        ],
        "title": "TemplateListResponse",
        "description": "List of fillable document templates."
      },
      "TotpActivateResponse": {
        "properties": {
          "enabled": {
            "type": "boolean",
            "title": "Enabled",
            "default": true
          },
          "recoveryCodes": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Recoverycodes",
            "description": "One-time recovery codes. Store these safely."
          }
        },
        "type": "object",
        "required": [
          "recoveryCodes"
        ],
        "title": "TotpActivateResponse",
        "description": "Response after successfully activating 2FA."
      },
      "TotpDisableRequest": {
        "properties": {
          "code": {
            "type": "string",
            "maxLength": 6,
            "minLength": 6,
            "title": "Code",
            "description": "Current TOTP code"
          }
        },
        "type": "object",
        "required": [
          "code"
        ],
        "title": "TotpDisableRequest",
        "description": "Request to disable 2FA."
      },
      "TotpLoginRequest": {
        "properties": {
          "sessionKey": {
            "type": "string",
            "title": "Sessionkey",
            "description": "Session key from email OTP step"
          },
          "code": {
            "type": "string",
            "maxLength": 8,
            "minLength": 6,
            "title": "Code",
            "description": "6-digit TOTP code or 8-char recovery code"
          }
        },
        "type": "object",
        "required": [
          "sessionKey",
          "code"
        ],
        "title": "TotpLoginRequest",
        "description": "Request to complete login with TOTP code."
      },
      "TotpSetupResponse": {
        "properties": {
          "secret": {
            "type": "string",
            "title": "Secret",
            "description": "Base32 TOTP secret for manual entry"
          },
          "provisioningUri": {
            "type": "string",
            "title": "Provisioninguri",
            "description": "otpauth:// URI for QR code"
          }
        },
        "type": "object",
        "required": [
          "secret",
          "provisioningUri"
        ],
        "title": "TotpSetupResponse",
        "description": "Response when initiating 2FA setup."
      },
      "TotpStatusResponse": {
        "properties": {
          "enabled": {
            "type": "boolean",
            "title": "Enabled"
          },
          "recoveryCodesRemaining": {
            "type": "integer",
            "title": "Recoverycodesremaining",
            "default": 0
          }
        },
        "type": "object",
        "required": [
          "enabled"
        ],
        "title": "TotpStatusResponse",
        "description": "Response for 2FA status check."
      },
      "TotpVerifyRequest": {
        "properties": {
          "code": {
            "type": "string",
            "maxLength": 6,
            "minLength": 6,
            "title": "Code",
            "description": "6-digit TOTP code"
          }
        },
        "type": "object",
        "required": [
          "code"
        ],
        "title": "TotpVerifyRequest",
        "description": "Request to verify a TOTP code."
      },
      "TransactionAmountDetail": {
        "properties": {
          "currency": {
            "type": "string",
            "title": "Currency"
          },
          "amount": {
            "type": "number",
            "title": "Amount"
          },
          "usdRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Usdrate"
          },
          "source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source"
          }
        },
        "type": "object",
        "required": [
          "currency",
          "amount"
        ],
        "title": "TransactionAmountDetail",
        "description": "Currency / amount / rate leg of a transaction."
      },
      "TransactionAttachment": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "downloadLink": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Downloadlink"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "createdAt"
        ],
        "title": "TransactionAttachment",
        "description": "A user-attached document on a transaction."
      },
      "TransactionBreakdownGranularity": {
        "type": "string",
        "enum": [
          "day",
          "week",
          "month"
        ],
        "title": "TransactionBreakdownGranularity",
        "description": "Time bucket size for the breakdown series."
      },
      "TransactionBreakdownItem": {
        "properties": {
          "key": {
            "type": "string",
            "title": "Key"
          },
          "volumeUsd": {
            "type": "number",
            "title": "Volumeusd"
          },
          "count": {
            "type": "integer",
            "title": "Count"
          }
        },
        "type": "object",
        "required": [
          "key",
          "volumeUsd",
          "count"
        ],
        "title": "TransactionBreakdownItem",
        "description": "One bucket in a breakdown — volume + count for a tag/type value."
      },
      "TransactionBreakdownResponse": {
        "properties": {
          "groupBy": {
            "$ref": "#/components/schemas/TransactionGroupBy"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/TransactionBreakdownItem"
            },
            "type": "array",
            "title": "Items"
          }
        },
        "type": "object",
        "required": [
          "groupBy",
          "items"
        ],
        "title": "TransactionBreakdownResponse",
        "description": "Volume + count grouped by tag or type, with the same filters as the list."
      },
      "TransactionBreakdownSeriesBucket": {
        "properties": {
          "bucketStart": {
            "type": "string",
            "format": "date-time",
            "title": "Bucketstart"
          },
          "bucketEnd": {
            "type": "string",
            "format": "date-time",
            "title": "Bucketend"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/TransactionBreakdownItem"
            },
            "type": "array",
            "title": "Items"
          }
        },
        "type": "object",
        "required": [
          "bucketStart",
          "bucketEnd",
          "items"
        ],
        "title": "TransactionBreakdownSeriesBucket",
        "description": "One time-bucket in a breakdown series, with the per-key items inside it."
      },
      "TransactionBreakdownSeriesResponse": {
        "properties": {
          "groupBy": {
            "$ref": "#/components/schemas/TransactionGroupBy"
          },
          "granularity": {
            "$ref": "#/components/schemas/TransactionBreakdownGranularity"
          },
          "buckets": {
            "items": {
              "$ref": "#/components/schemas/TransactionBreakdownSeriesBucket"
            },
            "type": "array",
            "title": "Buckets"
          }
        },
        "type": "object",
        "required": [
          "groupBy",
          "granularity",
          "buckets"
        ],
        "title": "TransactionBreakdownSeriesResponse",
        "description": "Time-bucketed volume + count grouped by tag or type.\n\nGranularity is auto-picked from the fromDate/toDate range: months for ranges\nlonger than 6 months, weeks for >30 days, days otherwise. The response\nalways includes every bucket in the range (zero-filled when empty) so the\nfrontend gets a complete x-axis."
      },
      "TransactionCardDetail": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "merchant": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Merchant"
          },
          "merchantIcon": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Merchanticon"
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Category"
          }
        },
        "type": "object",
        "title": "TransactionCardDetail",
        "description": "Card and merchant info for card transactions."
      },
      "TransactionContactDetail": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Address"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name"
        ],
        "title": "TransactionContactDetail",
        "description": "Contact details for transaction detail view."
      },
      "TransactionDetailResponse": {
        "properties": {
          "onchainTransactionId": {
            "type": "string",
            "title": "Onchaintransactionid"
          },
          "type": {
            "type": "string",
            "title": "Type"
          },
          "status": {
            "$ref": "#/components/schemas/TransactionStatus"
          },
          "time": {
            "type": "string",
            "format": "date-time",
            "title": "Time"
          },
          "isIncome": {
            "type": "boolean",
            "title": "Isincome"
          },
          "from": {
            "$ref": "#/components/schemas/TransactionAmountDetail"
          },
          "to": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TransactionAmountDetail"
              },
              {
                "type": "null"
              }
            ]
          },
          "fee": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TransactionAmountDetail"
              },
              {
                "type": "null"
              }
            ]
          },
          "walletFrom": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TransactionWalletDetail"
              },
              {
                "type": "null"
              }
            ]
          },
          "walletTo": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TransactionWalletDetail"
              },
              {
                "type": "null"
              }
            ]
          },
          "ibanFrom": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IBANAccountDetails-Output"
              },
              {
                "$ref": "#/components/schemas/USExternalAccountDetails-Output"
              },
              {
                "$ref": "#/components/schemas/SwiftAccountDetails-Output"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ibanfrom"
          },
          "ibanTo": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IBANAccountDetails-Output"
              },
              {
                "$ref": "#/components/schemas/USExternalAccountDetails-Output"
              },
              {
                "$ref": "#/components/schemas/SwiftAccountDetails-Output"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ibanto"
          },
          "txHash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Txhash"
          },
          "originChainId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Originchainid"
          },
          "destinationChainId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Destinationchainid"
          },
          "explorerUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Explorerurl"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "card": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TransactionCardDetail"
              },
              {
                "type": "null"
              }
            ]
          },
          "contact": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TransactionContactDetail"
              },
              {
                "type": "null"
              }
            ]
          },
          "userFrom": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserPreview"
              },
              {
                "type": "null"
              }
            ]
          },
          "userTo": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserPreview"
              },
              {
                "type": "null"
              }
            ]
          },
          "approvedBy": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserPreview"
              },
              {
                "$ref": "#/components/schemas/ApiKeyListResponse"
              },
              {
                "type": "null"
              }
            ],
            "title": "Approvedby"
          },
          "providerTrId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Providertrid"
          },
          "invoice": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TransactionInvoiceDetail"
              },
              {
                "type": "null"
              }
            ]
          },
          "attachments": {
            "items": {
              "$ref": "#/components/schemas/TransactionAttachment"
            },
            "type": "array",
            "title": "Attachments"
          }
        },
        "type": "object",
        "required": [
          "onchainTransactionId",
          "type",
          "status",
          "time",
          "isIncome",
          "from"
        ],
        "title": "TransactionDetailResponse",
        "description": "Detailed transaction response with wallet/IBAN info."
      },
      "TransactionExportFormat": {
        "type": "string",
        "enum": [
          "csv",
          "xlsx"
        ],
        "title": "TransactionExportFormat"
      },
      "TransactionGroupBy": {
        "type": "string",
        "enum": [
          "tag",
          "type"
        ],
        "title": "TransactionGroupBy",
        "description": "Field to group breakdown analytics by."
      },
      "TransactionInvoiceDetail": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "documentName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Documentname"
          },
          "documentLink": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Documentlink"
          },
          "dueDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duedate"
          },
          "items": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Items"
          },
          "invoiceLink": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invoicelink"
          },
          "issueDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Issuedate"
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Currency"
          },
          "discount": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Discount"
          }
        },
        "type": "object",
        "required": [
          "id"
        ],
        "title": "TransactionInvoiceDetail",
        "description": "Invoice info embedded in transaction details."
      },
      "TransactionRequest": {
        "properties": {
          "msg": {
            "type": "string",
            "title": "Msg"
          },
          "publicKey": {
            "type": "string",
            "title": "Publickey"
          },
          "proof": {
            "type": "string",
            "title": "Proof"
          }
        },
        "type": "object",
        "required": [
          "msg",
          "publicKey",
          "proof"
        ],
        "title": "TransactionRequest",
        "description": "Request to execute a signed transaction on wallet contract."
      },
      "TransactionResponse": {
        "properties": {
          "transactionHash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transactionhash"
          },
          "userOpHash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Userophash"
          },
          "status": {
            "type": "string",
            "title": "Status"
          }
        },
        "type": "object",
        "required": [
          "status"
        ],
        "title": "TransactionResponse",
        "description": "Response after executing a transaction."
      },
      "TransactionShareLinkResponse": {
        "properties": {
          "key": {
            "type": "string",
            "title": "Key"
          },
          "url": {
            "type": "string",
            "title": "Url"
          }
        },
        "type": "object",
        "required": [
          "key",
          "url"
        ],
        "title": "TransactionShareLinkResponse",
        "description": "Share link for a transaction receipt."
      },
      "TransactionSortBy": {
        "type": "string",
        "enum": [
          "date",
          "amount"
        ],
        "title": "TransactionSortBy",
        "description": "Field to sort the transaction list by."
      },
      "TransactionStatus": {
        "type": "string",
        "enum": [
          "pending",
          "success",
          "failed",
          "refunded"
        ],
        "title": "TransactionStatus",
        "description": "Unified transaction status."
      },
      "TransactionSummary": {
        "properties": {
          "inflowUsd": {
            "type": "number",
            "title": "Inflowusd"
          },
          "inflowCount": {
            "type": "integer",
            "title": "Inflowcount"
          },
          "outflowUsd": {
            "type": "number",
            "title": "Outflowusd"
          },
          "outflowCount": {
            "type": "integer",
            "title": "Outflowcount"
          },
          "pendingInflowUsd": {
            "type": "number",
            "title": "Pendinginflowusd"
          },
          "pendingInflowCount": {
            "type": "integer",
            "title": "Pendinginflowcount"
          },
          "pendingOutflowUsd": {
            "type": "number",
            "title": "Pendingoutflowusd"
          },
          "pendingOutflowCount": {
            "type": "integer",
            "title": "Pendingoutflowcount"
          }
        },
        "type": "object",
        "required": [
          "inflowUsd",
          "inflowCount",
          "outflowUsd",
          "outflowCount",
          "pendingInflowUsd",
          "pendingInflowCount",
          "pendingOutflowUsd",
          "pendingOutflowCount"
        ],
        "title": "TransactionSummary",
        "description": "Aggregate volumes and counts over the filtered transaction set.\n\nComputed without LIMIT/OFFSET — represents the entire filtered scope,\nnot just the current page. Returned only on the first page (offset=0);\nsubsequent pages omit it since it doesn't change with pagination."
      },
      "TransactionType": {
        "type": "string",
        "enum": [
          "sepa",
          "swift",
          "ach",
          "uaefts",
          "fedwire",
          "swift-usd",
          "swift-eur",
          "wire",
          "pix",
          "crypto",
          "card",
          "internal",
          "refund"
        ],
        "title": "TransactionType",
        "description": "Transaction type - payment rail.\n\nIncludes all ``FiatPaymentType`` values (sepa/swift/ach/uaefts) plus\nextended fiat variants (wire/swift-usd/swift-eur/fedwire/pix) and\nnon-fiat rails (crypto/card/internal/refund)."
      },
      "TransactionWalletDetail": {
        "properties": {
          "address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Address"
          },
          "chainId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Chainid"
          }
        },
        "type": "object",
        "title": "TransactionWalletDetail",
        "description": "Wallet details for transaction list/detail views."
      },
      "TransferRequest": {
        "properties": {
          "amount": {
            "type": "number",
            "title": "Amount"
          },
          "email": {
            "type": "string",
            "title": "Email"
          },
          "memo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Memo"
          }
        },
        "type": "object",
        "required": [
          "amount",
          "email"
        ],
        "title": "TransferRequest"
      },
      "TransferResponse": {
        "properties": {
          "txHash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Txhash"
          },
          "userCreated": {
            "type": "boolean",
            "title": "Usercreated",
            "default": false
          },
          "emailSent": {
            "type": "boolean",
            "title": "Emailsent",
            "default": false
          }
        },
        "type": "object",
        "title": "TransferResponse"
      },
      "USAccountDetails": {
        "properties": {
          "accountNumber": {
            "type": "string",
            "title": "Accountnumber"
          },
          "routingNumber": {
            "type": "string",
            "title": "Routingnumber"
          }
        },
        "type": "object",
        "required": [
          "accountNumber",
          "routingNumber"
        ],
        "title": "USAccountDetails",
        "description": "US domestic account details (ACH)."
      },
      "USExternalAccountDetails-Input": {
        "properties": {
          "bankName": {
            "type": "string",
            "title": "Bankname"
          },
          "bankAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bankaddress"
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Currency"
          },
          "accountHolderType": {
            "$ref": "#/components/schemas/AlignAccountHolderType"
          },
          "accountHolderFirstName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderfirstname"
          },
          "accountHolderLastName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderlastname"
          },
          "accountHolderBusinessName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderbusinessname"
          },
          "accountHolderAddress": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "relationship": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__schemas__base__ContactRelationship"
              },
              {
                "type": "null"
              }
            ]
          },
          "paymentReference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Paymentreference"
          },
          "accountType": {
            "type": "string",
            "enum": [
              "ach",
              "fedwire"
            ],
            "title": "Accounttype",
            "default": "ach"
          },
          "us": {
            "$ref": "#/components/schemas/USAccountDetails"
          }
        },
        "type": "object",
        "required": [
          "bankName",
          "accountHolderType",
          "us"
        ],
        "title": "USExternalAccountDetails",
        "description": "US domestic (ACH) external account."
      },
      "USExternalAccountDetails-Output": {
        "properties": {
          "bankName": {
            "type": "string",
            "title": "Bankname"
          },
          "bankAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bankaddress"
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Currency"
          },
          "accountHolderType": {
            "$ref": "#/components/schemas/AlignAccountHolderType"
          },
          "accountHolderFirstName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderfirstname"
          },
          "accountHolderLastName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderlastname"
          },
          "accountHolderBusinessName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderbusinessname"
          },
          "accountHolderAddress": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "relationship": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__schemas__base__ContactRelationship"
              },
              {
                "type": "null"
              }
            ]
          },
          "paymentReference": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Paymentreference"
          },
          "accountType": {
            "type": "string",
            "enum": [
              "ach",
              "fedwire"
            ],
            "title": "Accounttype",
            "default": "ach"
          },
          "us": {
            "$ref": "#/components/schemas/USAccountDetails"
          },
          "beneficiaryName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Beneficiaryname",
            "description": "Frontend-only alias derived from account holder fields.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "bankName",
          "accountHolderType",
          "us",
          "beneficiaryName"
        ],
        "title": "USExternalAccountDetails",
        "description": "US domestic (ACH) external account."
      },
      "UaeAccountInput": {
        "properties": {
          "accountHolderType": {
            "$ref": "#/components/schemas/AlignAccountHolderType"
          },
          "accountHolderFirstName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderfirstname"
          },
          "accountHolderLastName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderlastname"
          },
          "accountHolderBusinessName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountholderbusinessname"
          },
          "accountType": {
            "type": "string",
            "const": "uaefts",
            "title": "Accounttype",
            "default": "uaefts"
          },
          "bankName": {
            "type": "string",
            "title": "Bankname"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "AED"
          },
          "accountHolderAddress": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "ibanNumber": {
            "type": "string",
            "title": "Ibannumber"
          },
          "bic": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bic"
          },
          "relationship": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/app__schemas__base__ContactRelationship"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "accountHolderType",
          "bankName",
          "ibanNumber"
        ],
        "title": "UaeAccountInput",
        "description": "UAE FTS bank contact input."
      },
      "UnifiedTransactionItem": {
        "properties": {
          "onchainTransactionId": {
            "type": "string",
            "title": "Onchaintransactionid"
          },
          "txHash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Txhash"
          },
          "type": {
            "type": "string",
            "title": "Type"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "time": {
            "type": "string",
            "format": "date-time",
            "title": "Time"
          },
          "status": {
            "$ref": "#/components/schemas/TransactionStatus"
          },
          "isIncome": {
            "type": "boolean",
            "title": "Isincome"
          },
          "tag": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tag"
          },
          "from": {
            "$ref": "#/components/schemas/TransactionAmountDetail"
          },
          "to": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TransactionAmountDetail"
              },
              {
                "type": "null"
              }
            ]
          },
          "fee": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TransactionAmountDetail"
              },
              {
                "type": "null"
              }
            ]
          },
          "destinationChainId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Destinationchainid"
          },
          "usdBalanceAfter": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Usdbalanceafter"
          },
          "card": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TransactionCardDetail"
              },
              {
                "type": "null"
              }
            ]
          },
          "userFrom": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserPreview"
              },
              {
                "type": "null"
              }
            ]
          },
          "userTo": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserPreview"
              },
              {
                "type": "null"
              }
            ]
          },
          "walletFrom": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TransactionWalletDetail"
              },
              {
                "type": "null"
              }
            ]
          },
          "walletTo": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TransactionWalletDetail"
              },
              {
                "type": "null"
              }
            ]
          },
          "ibanFrom": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IBANAccountDetails-Output"
              },
              {
                "$ref": "#/components/schemas/USExternalAccountDetails-Output"
              },
              {
                "$ref": "#/components/schemas/SwiftAccountDetails-Output"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ibanfrom"
          },
          "ibanTo": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IBANAccountDetails-Output"
              },
              {
                "$ref": "#/components/schemas/USExternalAccountDetails-Output"
              },
              {
                "$ref": "#/components/schemas/SwiftAccountDetails-Output"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ibanto"
          },
          "approved": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Approved"
          },
          "hasAttachments": {
            "type": "boolean",
            "title": "Hasattachments",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "onchainTransactionId",
          "type",
          "name",
          "time",
          "status",
          "isIncome",
          "from"
        ],
        "title": "UnifiedTransactionItem",
        "description": "Unified transaction item for the transaction list.\n\nLegacy directional fields are still included for compatibility."
      },
      "UnifiedTransactionListResponse": {
        "properties": {
          "transactions": {
            "items": {
              "$ref": "#/components/schemas/UnifiedTransactionItem"
            },
            "type": "array",
            "title": "Transactions"
          },
          "summary": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TransactionSummary"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "transactions"
        ],
        "title": "UnifiedTransactionListResponse",
        "description": "Unified transaction list response."
      },
      "UniversalQuoteResponse": {
        "properties": {
          "quoteId": {
            "type": "string",
            "title": "Quoteid"
          },
          "provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider"
          },
          "paymentChannel": {
            "type": "string",
            "title": "Paymentchannel"
          },
          "fromAmount": {
            "type": "number",
            "title": "Fromamount"
          },
          "fromCurrency": {
            "type": "string",
            "title": "Fromcurrency"
          },
          "toAmount": {
            "type": "number",
            "title": "Toamount"
          },
          "depositMemo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Depositmemo"
          },
          "toCurrency": {
            "type": "string",
            "title": "Tocurrency"
          },
          "feeAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Feeamount"
          },
          "feeCurrency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Feecurrency"
          },
          "rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rate"
          },
          "expiresAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expiresat"
          },
          "maskedIban": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maskediban"
          },
          "depositAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Depositaddress"
          },
          "recipientAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recipientaddress"
          },
          "originChainId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Originchainid"
          },
          "destinationChainId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Destinationchainid"
          },
          "transactionRequest": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transactionrequest"
          }
        },
        "type": "object",
        "required": [
          "quoteId",
          "paymentChannel",
          "fromAmount",
          "fromCurrency",
          "toAmount",
          "toCurrency"
        ],
        "title": "UniversalQuoteResponse",
        "description": "Universal quote response."
      },
      "UniversalTransactionResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "quoteId": {
            "type": "string",
            "title": "Quoteid"
          },
          "type": {
            "type": "string",
            "title": "Type"
          },
          "paymentChannel": {
            "type": "string",
            "title": "Paymentchannel"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "fromAmount": {
            "type": "number",
            "title": "Fromamount"
          },
          "fromCurrency": {
            "type": "string",
            "title": "Fromcurrency"
          },
          "toAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Toamount"
          },
          "toCurrency": {
            "type": "string",
            "title": "Tocurrency"
          },
          "originTxHash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Origintxhash"
          },
          "destinationTxHash": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Destinationtxhash"
          },
          "depositAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Depositaddress"
          },
          "errorMessage": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Errormessage"
          },
          "expiresAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expiresat"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "quoteId",
          "type",
          "paymentChannel",
          "status",
          "fromAmount",
          "fromCurrency",
          "toCurrency",
          "createdAt"
        ],
        "title": "UniversalTransactionResponse",
        "description": "Universal transaction response."
      },
      "UpdateChatRequest": {
        "properties": {
          "externalId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Externalid"
          }
        },
        "type": "object",
        "title": "UpdateChatRequest",
        "description": "Update chat external ID."
      },
      "UpdateContractLabelRequest": {
        "properties": {
          "label": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          }
        },
        "type": "object",
        "title": "UpdateContractLabelRequest",
        "description": "Request to update a contract label."
      },
      "UpdateContractPaymentMethodsRequest": {
        "properties": {
          "paymentMethods": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Paymentmethods"
          }
        },
        "type": "object",
        "title": "UpdateContractPaymentMethodsRequest",
        "description": "Payment methods selected by the contractor for this contract."
      },
      "UpdateContractRequest": {
        "properties": {
          "label": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ],
            "title": "Label"
          },
          "period": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ContractPeriod"
              },
              {
                "type": "null"
              }
            ]
          },
          "activationAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Activationat"
          },
          "expirationAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expirationat"
          },
          "fields": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fields"
          },
          "priorityMethods": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/TransactionType"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prioritymethods"
          }
        },
        "type": "object",
        "title": "UpdateContractRequest",
        "description": "Request to update creator-owned contract terms and schedule."
      },
      "UpdateInvoiceRequest": {
        "properties": {
          "onchainTransactionId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Onchaintransactionid"
          },
          "status": {
            "$ref": "#/components/schemas/InvoiceStatus"
          }
        },
        "type": "object",
        "required": [
          "status"
        ],
        "title": "UpdateInvoiceRequest",
        "description": "Request to update an invoice."
      },
      "UpdateUserRequest": {
        "properties": {
          "firstName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Firstname"
          },
          "middleName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Middlename"
          },
          "lastName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastname"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "birthDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Birthdate"
          },
          "country": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CountryCode"
              },
              {
                "type": "null"
              }
            ]
          },
          "entityName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entityname"
          },
          "inviteCode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invitecode"
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "title": "UpdateUserRequest",
        "description": "Partial update for User model fields."
      },
      "UploadedDocumentListResponse": {
        "properties": {
          "documents": {
            "items": {
              "$ref": "#/components/schemas/DocumentDraftInfo"
            },
            "type": "array",
            "title": "Documents"
          }
        },
        "type": "object",
        "required": [
          "documents"
        ],
        "title": "UploadedDocumentListResponse",
        "description": "Response for user-uploaded documents list."
      },
      "UserAddress": {
        "properties": {
          "streetAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Streetaddress"
          },
          "addressLine2": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Addressline2"
          },
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "City"
          },
          "state": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "State"
          },
          "country": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CountryCode"
              },
              {
                "type": "null"
              }
            ]
          },
          "zip": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Zip"
          }
        },
        "type": "object",
        "title": "UserAddress",
        "description": "Address schema for user.\n\nCanonical field names: street_address, address_line_2, city, state, country, zip.\nAccepts legacy Align/IBAN field names (street_line_1, street_line_2, postal_code)\nfor backward compatibility with existing JSONB data."
      },
      "UserChatType": {
        "type": "string",
        "enum": [
          "support",
          "compliance"
        ],
        "title": "UserChatType",
        "description": "Chat types exposed to end users (subset of db.ChatType)."
      },
      "UserCreateRequest": {
        "properties": {
          "firstName": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Firstname"
          },
          "lastName": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastname"
          },
          "country": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CountryCode"
              },
              {
                "type": "null"
              }
            ]
          },
          "jurisdiction": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CountryCode"
              },
              {
                "type": "null"
              }
            ]
          },
          "birthDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Birthdate",
            "description": "Birth date in ISO format"
          },
          "isBusiness": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Isbusiness"
          },
          "entityName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entityname"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "website": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Website"
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "avatarUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatarurl"
          },
          "contactInfo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contactinfo"
          },
          "inviteCode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invitecode",
            "description": "Invite code from referrer"
          }
        },
        "type": "object",
        "title": "UserCreateRequest",
        "description": "Request schema for creating a user."
      },
      "UserDashboardTag": {
        "type": "string",
        "enum": [
          "new",
          "active",
          "important",
          "spam",
          "in_review",
          "waiting_for_documents",
          "waiting_for_response"
        ],
        "title": "UserDashboardTag",
        "description": "Admin dashboard tag for a user."
      },
      "UserEventRequest": {
        "properties": {
          "event": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1,
            "title": "Event",
            "description": "Event name"
          },
          "properties": {
            "additionalProperties": true,
            "type": "object",
            "title": "Properties",
            "description": "Event properties"
          }
        },
        "type": "object",
        "required": [
          "event"
        ],
        "title": "UserEventRequest",
        "description": "Request schema for tracking user events."
      },
      "UserOperationV06": {
        "properties": {
          "sender": {
            "type": "string",
            "title": "Sender"
          },
          "nonce": {
            "type": "string",
            "title": "Nonce"
          },
          "initCode": {
            "type": "string",
            "title": "Initcode",
            "default": "0x"
          },
          "callData": {
            "type": "string",
            "title": "Calldata"
          },
          "callGasLimit": {
            "type": "string",
            "title": "Callgaslimit"
          },
          "verificationGasLimit": {
            "type": "string",
            "title": "Verificationgaslimit"
          },
          "preVerificationGas": {
            "type": "string",
            "title": "Preverificationgas"
          },
          "maxFeePerGas": {
            "type": "string",
            "title": "Maxfeepergas"
          },
          "maxPriorityFeePerGas": {
            "type": "string",
            "title": "Maxpriorityfeepergas"
          },
          "paymasterAndData": {
            "type": "string",
            "title": "Paymasteranddata",
            "default": "0x"
          },
          "signature": {
            "type": "string",
            "title": "Signature",
            "default": "0x"
          }
        },
        "type": "object",
        "required": [
          "sender",
          "nonce",
          "callData",
          "callGasLimit",
          "verificationGasLimit",
          "preVerificationGas",
          "maxFeePerGas",
          "maxPriorityFeePerGas"
        ],
        "title": "UserOperationV06",
        "description": "ERC-4337 v0.6 UserOperation in the JSON-RPC\n`eth_sendUserOperation` shape — camelCase keys (via the `CamelModel`\nalias generator), `0x`-hex string values for every numeric and byte\nfield.\n\nAll 11 v0.6 fields are present:\n\n    sender, nonce, initCode, callData, callGasLimit,\n    verificationGasLimit, preVerificationGas, maxFeePerGas,\n    maxPriorityFeePerGas, paymasterAndData, signature\n\n`signature` defaults to `\"0x\"` because some endpoints\n(e.g. `/wallet/op_cosign`) consume an *unsigned* userOp and\nproduce the signature themselves, while others\n(e.g. `/wallet/paymaster_raw`) consume a fully-signed userOp and\nsubmit it on-chain as-is."
      },
      "UserPreview": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "email": {
            "type": "string",
            "title": "Email"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "avatarUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatarurl"
          },
          "address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Address"
          }
        },
        "type": "object",
        "required": [
          "id",
          "email"
        ],
        "title": "UserPreview",
        "description": "Lightweight user preview (for transaction participants, etc.)."
      },
      "UserResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "email": {
            "type": "string",
            "title": "Email"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "avatarUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avatarurl"
          },
          "contactInfo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contactinfo"
          },
          "firstName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Firstname"
          },
          "middleName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Middlename"
          },
          "lastName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastname"
          },
          "entityName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entityname"
          },
          "birthDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Birthdate"
          },
          "country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country"
          },
          "jurisdiction": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Jurisdiction"
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UserAddress"
              },
              {
                "type": "null"
              }
            ]
          },
          "fiatRails": {
            "items": {
              "$ref": "#/components/schemas/FiatRailResponse"
            },
            "type": "array",
            "title": "Fiatrails",
            "default": []
          },
          "isBusiness": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Isbusiness"
          },
          "plan": {
            "type": "string",
            "title": "Plan",
            "default": "free"
          },
          "referrer": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ReferrerInfo"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "title": "Updatedat"
          },
          "pushNotificationAllowed": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pushnotificationallowed"
          },
          "myIp": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Myip"
          },
          "bankRequested": {
            "$ref": "#/components/schemas/BankRequestedSettings-Output"
          }
        },
        "type": "object",
        "required": [
          "id",
          "email",
          "phone",
          "avatarUrl",
          "createdAt",
          "updatedAt"
        ],
        "title": "UserResponse",
        "description": "Schema for user response."
      },
      "UserSettings-Input": {
        "properties": {
          "appearance": {
            "$ref": "#/components/schemas/AppearancePreference",
            "default": "system"
          },
          "devMode": {
            "type": "boolean",
            "title": "Devmode",
            "default": false
          },
          "emailsTs": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Emailsts"
          },
          "notifications": {
            "$ref": "#/components/schemas/NotificationsSettings"
          },
          "bankRequested": {
            "$ref": "#/components/schemas/BankRequestedSettings-Input"
          }
        },
        "type": "object",
        "title": "UserSettings",
        "description": "User settings."
      },
      "UserSettings-Output": {
        "properties": {
          "appearance": {
            "$ref": "#/components/schemas/AppearancePreference",
            "default": "system"
          },
          "devMode": {
            "type": "boolean",
            "title": "Devmode",
            "default": false
          },
          "emailsTs": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Emailsts"
          },
          "notifications": {
            "$ref": "#/components/schemas/NotificationsSettings"
          },
          "bankRequested": {
            "$ref": "#/components/schemas/BankRequestedSettings-Output"
          }
        },
        "type": "object",
        "title": "UserSettings",
        "description": "User settings."
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "VerifyOtpRequest": {
        "properties": {
          "sessionId": {
            "type": "string",
            "title": "Sessionid"
          },
          "code": {
            "type": "string",
            "maxLength": 6,
            "minLength": 6,
            "title": "Code"
          }
        },
        "type": "object",
        "required": [
          "sessionId",
          "code"
        ],
        "title": "VerifyOtpRequest",
        "description": "Request to verify OTP code."
      },
      "WaitlistRequest": {
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "title": "Email"
          },
          "website": {
            "type": "string",
            "title": "Website"
          }
        },
        "type": "object",
        "required": [
          "email",
          "website"
        ],
        "title": "WaitlistRequest"
      },
      "WalletCreateRequest": {
        "properties": {
          "teeSignature": {
            "type": "string",
            "title": "Teesignature"
          },
          "passkeyId": {
            "type": "string",
            "title": "Passkeyid"
          },
          "teePublicKey": {
            "type": "string",
            "title": "Teepublickey",
            "default": "ed25519:G1c6MTsy2Gh7h77jKRsku9jwfiotTaSHCCz4CAHkZ64t"
          },
          "authPayload": {
            "type": "string",
            "title": "Authpayload"
          }
        },
        "type": "object",
        "required": [
          "teeSignature",
          "passkeyId",
          "authPayload"
        ],
        "title": "WalletCreateRequest",
        "description": "Response after creating a wallet."
      },
      "WalletCreateResponse": {
        "properties": {
          "accountId": {
            "type": "string",
            "title": "Accountid"
          },
          "nearTrxs": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Neartrxs"
          },
          "evmAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Evmaddress"
          },
          "privyAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Privyaddress"
          }
        },
        "type": "object",
        "required": [
          "accountId",
          "nearTrxs"
        ],
        "title": "WalletCreateResponse",
        "description": "Response after creating a wallet."
      },
      "WalletType": {
        "type": "string",
        "enum": [
          "omni",
          "base-main",
          "swipelux",
          "mcp",
          "base-aa-wallet",
          "wirex"
        ],
        "title": "WalletType"
      },
      "WebhookAckResponse": {
        "properties": {
          "ok": {
            "type": "boolean",
            "title": "Ok",
            "default": true
          }
        },
        "type": "object",
        "title": "WebhookAckResponse",
        "description": "Generic acknowledgement returned by webhook handlers."
      },
      "WithdrawOnchainRequest": {
        "properties": {
          "amount": {
            "type": "number",
            "title": "Amount"
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "default": "USDC"
          }
        },
        "type": "object",
        "required": [
          "amount"
        ],
        "title": "WithdrawOnchainRequest",
        "description": "Request to withdraw from Swipelux wallet to onchain address."
      },
      "XeroExportRequest": {
        "properties": {
          "fromDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fromdate"
          },
          "toDate": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Todate"
          },
          "type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Type"
          },
          "isIncome": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Isincome"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          }
        },
        "type": "object",
        "title": "XeroExportRequest"
      },
      "XeroExportResult": {
        "properties": {
          "exported": {
            "type": "integer",
            "title": "Exported"
          },
          "skipped": {
            "type": "integer",
            "title": "Skipped"
          },
          "errors": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Errors"
          }
        },
        "type": "object",
        "required": [
          "exported",
          "skipped"
        ],
        "title": "XeroExportResult"
      },
      "XeroStatusResponse": {
        "properties": {
          "connected": {
            "type": "boolean",
            "title": "Connected"
          },
          "accountName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accountname"
          }
        },
        "type": "object",
        "required": [
          "connected"
        ],
        "title": "XeroStatusResponse"
      },
      "app__routers__security__tee__AttestateJwtRequest": {
        "properties": {
          "encrypted_data": {
            "type": "string",
            "title": "Encrypted Data"
          },
          "client_pubkey": {
            "type": "string",
            "title": "Client Pubkey"
          }
        },
        "type": "object",
        "required": [
          "encrypted_data",
          "client_pubkey"
        ],
        "title": "AttestateJwtRequest"
      },
      "app__routers__security__tee__AttestateJwtResponse": {
        "properties": {
          "hash_email": {
            "type": "string",
            "title": "Hash Email"
          },
          "auth_payload": {
            "type": "string",
            "title": "Auth Payload"
          },
          "signature": {
            "type": "string",
            "title": "Signature"
          },
          "public_key": {
            "type": "string",
            "title": "Public Key"
          },
          "timestamp": {
            "type": "integer",
            "title": "Timestamp"
          }
        },
        "type": "object",
        "required": [
          "hash_email",
          "auth_payload",
          "signature",
          "public_key",
          "timestamp"
        ],
        "title": "AttestateJwtResponse"
      },
      "app__routers__security__tee_local__AttestateJwtRequest": {
        "properties": {
          "googleJwt": {
            "type": "string",
            "title": "Googlejwt"
          },
          "msg": {
            "type": "string",
            "title": "Msg"
          },
          "receiverId": {
            "type": "string",
            "title": "Receiverid"
          }
        },
        "type": "object",
        "required": [
          "googleJwt",
          "msg",
          "receiverId"
        ],
        "title": "AttestateJwtRequest"
      },
      "app__routers__security__tee_local__AttestateJwtResponse": {
        "properties": {
          "hashEmail": {
            "type": "string",
            "title": "Hashemail"
          },
          "authPayload": {
            "type": "string",
            "title": "Authpayload"
          },
          "signature": {
            "type": "string",
            "title": "Signature"
          },
          "publicKey": {
            "type": "string",
            "title": "Publickey"
          },
          "timestamp": {
            "type": "integer",
            "title": "Timestamp"
          }
        },
        "type": "object",
        "required": [
          "hashEmail",
          "authPayload",
          "signature",
          "publicKey",
          "timestamp"
        ],
        "title": "AttestateJwtResponse"
      },
      "app__schemas__base__ContactRelationship": {
        "type": "string",
        "enum": [
          "charity",
          "commercial_investment",
          "corporate_card",
          "credit_card",
          "dividend",
          "family",
          "financial_services",
          "good_sold",
          "goods_bought",
          "government",
          "insurance",
          "intergroup_transfer",
          "intra_group_dividends",
          "information_technology",
          "leasing",
          "loan_charges",
          "merchant_settlement",
          "mobile_wallet",
          "none",
          "non_resident_transfer_between_accounts",
          "pension",
          "personal_expenses",
          "prepaid_cards",
          "professional",
          "rental",
          "resident_transfer_between_accounts",
          "salaries",
          "telecommunications",
          "travel",
          "utility_bill"
        ],
        "title": "ContactRelationship",
        "description": "Unified contact relationship / transfer purpose.\n\nValues match Align AlignTransferPurpose (the more granular set).\nMapped to Swipelux AccountHolderRelationship via ``swipelux_relationship``."
      },
      "app__schemas__routers__admin__admin__ChatResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "userId": {
            "type": "string",
            "format": "uuid",
            "title": "Userid"
          },
          "platform": {
            "type": "string",
            "title": "Platform"
          },
          "type": {
            "type": "string",
            "title": "Type"
          },
          "externalId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Externalid"
          },
          "lastMessageAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastmessageat"
          },
          "updatedAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updatedat"
          },
          "lastReadByUserAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastreadbyuserat"
          },
          "lastReadByAdminAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastreadbyadminat"
          },
          "unreadCount": {
            "type": "integer",
            "title": "Unreadcount",
            "default": 0
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "userId",
          "platform",
          "type",
          "createdAt"
        ],
        "title": "ChatResponse",
        "description": "Chat response."
      },
      "app__schemas__routers__apps__ApiKeyCreateRequest": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "title": "Name"
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "ApiKeyCreateRequest"
      },
      "app__schemas__routers__apps__ApiKeyResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "key": {
            "type": "string",
            "title": "Key"
          },
          "walletAddress": {
            "type": "string",
            "title": "Walletaddress"
          },
          "keyPreview": {
            "type": "string",
            "title": "Keypreview"
          },
          "lastUse": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastuse"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "key",
          "walletAddress",
          "keyPreview",
          "lastUse",
          "createdAt"
        ],
        "title": "ApiKeyResponse",
        "description": "Returned ONCE on key creation — includes raw key."
      },
      "app__schemas__routers__invoices__contract__AttachDocumentRequest": {
        "properties": {
          "documentId": {
            "type": "string",
            "format": "uuid",
            "title": "Documentid"
          }
        },
        "type": "object",
        "required": [
          "documentId"
        ],
        "title": "AttachDocumentRequest",
        "description": "Request to attach a document to a contract."
      },
      "app__schemas__routers__security__mcp__ApiKeyCreateRequest": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name"
          },
          "ipRestriction": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Iprestriction"
          },
          "maxSpend": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maxspend"
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "ApiKeyCreateRequest"
      },
      "app__schemas__routers__security__mcp__ApiKeyResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "key": {
            "type": "string",
            "title": "Key"
          },
          "walletAddress": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Walletaddress"
          },
          "ipRestriction": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Iprestriction"
          },
          "maxSpend": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maxspend"
          },
          "totalSpend": {
            "type": "number",
            "title": "Totalspend"
          },
          "remaining": {
            "type": "integer",
            "title": "Remaining",
            "default": 0
          },
          "lastUse": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastuse"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "key",
          "totalSpend",
          "createdAt"
        ],
        "title": "ApiKeyResponse"
      },
      "app__schemas__routers__transactions__transaction__AttachDocumentRequest": {
        "properties": {
          "documentId": {
            "type": "string",
            "format": "uuid",
            "title": "Documentid"
          }
        },
        "type": "object",
        "required": [
          "documentId"
        ],
        "title": "AttachDocumentRequest",
        "description": "Body for POST /transactions/{id}/attachments."
      },
      "app__schemas__routers__user__contact__ContactRelationship": {
        "type": "string",
        "enum": [
          "self",
          "external"
        ],
        "title": "ContactRelationship",
        "description": "Relationship between the current user and the contact."
      },
      "app__schemas__routers__user__user__ChatResponse": {
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
          },
          "lastMessageAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastmessageat"
          },
          "updatedAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updatedat"
          },
          "lastReadByUserAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastreadbyuserat"
          },
          "lastReadByAdminAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastreadbyadminat"
          },
          "unreadCount": {
            "type": "integer",
            "title": "Unreadcount",
            "default": 0
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Createdat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "createdAt"
        ],
        "title": "ChatResponse",
        "description": "User-facing chat."
      },
      "AppsMeResponse": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "email": {
            "type": "string",
            "title": "Email"
          },
          "balance": {
            "type": "number",
            "title": "Balance",
            "default": 0
          },
          "spendLimit": {
            "type": "number",
            "title": "Spendlimit",
            "default": 0
          },
          "appId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Appid"
          },
          "appName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Appname"
          },
          "scope": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Scope",
            "default": []
          }
        },
        "type": "object",
        "required": [
          "email"
        ],
        "title": "AppsMeResponse",
        "description": "Introspection response for the API key used by HEVN CLI whoami. Includes user identity, owning app, scopes, balance, and remaining spend limit."
      }
    },
    "securitySchemes": {
      "HTTPBearer": {
        "type": "http",
        "scheme": "bearer",
        "x-default": "Bearer <token>"
      },
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key",
        "description": "Alternative HEVN API key header. The CLI defaults to Authorization Bearer unless configured with HEVN_API_KEY_HEADER=X-Api-Key."
      }
    }
  },
  "servers": [
    {
      "url": "https://api.hevn.finance",
      "description": "Production"
    }
  ]
}