{ "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=` 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 " }, "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" } ] }