PageSourceSearch

https://metacomp.ai/assets/tools-DSH3yNOZ.js

js metacomp.ai collected 2026-10-05 12:15:28 UTC 131,011 bytes, 267 lines download raw bytes

1import{n as e,r as t}from"./chunk-DECur_0Z.js";import{t as n}from"./jsx-runtime-DrYbZxX9.js";var r=e({default:()=>l,frontmatter:()=>a,structuredData:()=>o,toc:()=>s}),i=t(n()),a={title:`MCP Tools`,description:`Complete parameter and return reference for all 32 AgentX MCP tools across payments (accounts, OTC exchange, fiat deposit, crypto deposit, withdrawal, history) and fixed income.`},o={contents:[{heading:void 0,content:"All tools are available via the MetaComp MCP server at `https://www.metacomp.ai/mcp`. Check module permissions before calling any module-specific tool. Cross-cutting concepts (minor units, `withdrawalParty`, `currencyType`, fee enums, verification codes) are defined in Concepts."},{heading:`get_account_summary`,content:`Get a USD-equivalent balance summary across all product account categories. Read-only.`},{heading:`get_account_summary`,content:`**Parameters**`},{heading:`get_account_summary`,content:`None.`},{heading:`get_account_summary`,content:`**Returns**`},{heading:`get_account_summary`,content:"An object with keys `fiat`, `crypto`, `investment_fiat`, `quarantine_portfolio`, `investment_product`. Each key maps to `{ availableAmount, pendingAmount, totalAmount }` — all high-precision USD decimal strings."},{heading:`get_account_detail`,content:`Fetch per-currency breakdown for a specific product account. Read-only.`},{heading:`get_account_detail`,content:`**Parameters**`},{heading:`get_account_detail`,content:`Name`},{heading:`get_account_detail`,content:`Type`},{heading:`get_account_detail`,content:`Required`},{heading:`get_account_detail`,content:`Notes`}
1,{heading:`get_account_detail`,content:"`productCode`"},{heading:`get_account_detail`,content:`string (enum)`},{heading:`get_account_detail`,content:`yes`},{heading:`get_account_detail`,content:"`fiat` \\| `crypto` \\| `investment_fiat` \\| `quarantine_portfolio` \\| `investment_product` \\| `named_account`"},{heading:`get_account_detail`,content:`**Returns**`},{heading:`get_account_detail`,content:"On success: `{ data: { holderCode, productCode, availableAmount, pendingAmount, totalAmount, instrumentInfoMap } }`. `instrumentInfoMap` is keyed by currency code; each entry has `availableAmount`, `availableAmountDisplay`, `pendingAmount`, `pendingCreditAmount`. On session expiry: `{ error: true, message, authUrl? }`. See Accounts & Balances."},{heading:`get_module_permissions`,content:`Check which financial modules the authenticated user can access. Read-only.`},{heading:`get_module_permissions`,content:`**Parameters**`},{heading:`get_module_permissions`,content:`None.`},{heading:`get_module_permissions`,content:`**Returns**`},{heading:`get_module_permissions`,content:"`{ permissions: [{ module: 'deposit'|'otc'|'withdrawal'|'wealth', hasPermission: boolean }] }`"},{heading:`get_available_currency_pairs`,content:`List all currency pairs available for OTC exchange. Read-only.`},{heading:`get_available_currency_pairs`,content:`**Parameters**`},{heading:`get_available_currency_pairs`,content:`None.`},{heading:`get_available_currency_pairs`,content:`**Returns**`},{heading:`get_available_currency_pairs`,content:'`{ pairs: string[] }` — each element is a tradeable pair in `BASE/QUOTE` format (e.g. `"USD/USDC"`, `"GBP/USDT"`).'},{heading:`otc-exchange`,content:"Requires `otc` module permission. The OTC flow is two steps: `get_otc_quote` → `confirm_otc_trade`. For error handling (HTTP 410 / 409), see Response Reference."},{heading:`get_exchange_quote`,content:`Fetch the current from→to exchange rate without locking a quote or checking balance. Use for browsing rates or pre-lock math. Read-only.`},{heading:`get_exchange_quote`,content:`**Parameters**`},{heading:`get_exchange_quote`,content:`Name`},{heading:`get_exchange_quote`,content:`Type`},{heading:`get_exchange_quote`,content:`Required`},{heading:`get_exchange_quote`,content:`Notes`},{heading:`get_exchange_quote`,content:"`fromCurrency`"},{heading:`get_exchange_quote`,content:`string`},{heading:`get_exchange_quote`,content:`yes`},{heading:`get_exchange_quote`,content:'Source currency code (e.g. `"USD"`, `"USDT"`, `"SGD"`)'},{heading:`get_exchange_quote`,content:"`toCurrency`"},{heading:`get_exchange_quote`,content:`string`},{heading:`get_exchange_quote`,content:`yes`},{heading:`get_exchange_quote`,content:'Target currency code (e.g. `"USDT"`, `"BTC"`, `"EUR"`)'},{heading:`get_exchange_quote`,content:`**Returns**`},{heading:`get_exchange_quote`,content:"`{ rate: string }` — the decimal from→to exchange rate. Multiply `fromCurrency` amount by `rate` to get the `toCurrency` amount. Does not lock a quote or reserve balance."},{heading:`get_otc_quote`,content:`Step 1 of OTC exchange. Locks a quote at a specific amount and performs a backend balance and limit check. Read-only.`},{heading:`get_otc_quote`,content:`**Parameters**`},{heading:`get_otc_quote`,content:`Name`},{heading:`get_otc_quote`,content:`Type`},{heading:`get_otc_quote`,content:`Required`},{heading:`get_otc_quote`,content:`Notes`},{heading:`get_otc_quote`,content:"`fromCurrency`"},{heading:`get_otc_quote`,content:`string`},{heading:`get_otc_quote`,content:`yes`},{heading:`get_otc_quote`,content:'Source currency code (e.g. `"USD"`, `"USDT"`)'},{heading:`get_otc_quote`,content:"`toCurrency`"},{heading:`get_otc_quote`,content:`string`},{heading:`get_otc_quote`,content:`yes`},{heading:`get_otc_quote`,content:'Target currency code (e.g. `"USDT"`, `"BTC"`)'},{heading:`get_otc_quote`,content:"`totalValue`"},{heading:`get_otc_quote`,content:`string`},{heading:`get_otc_quote`,content:`yes`},{heading:`get_otc_quote`,content:'Amount to exchange in source currency (e.g. `"1000"`, `"500.50"`)'},{heading:`get_otc_quote`,content:`**Returns**`},{heading:`get_otc_quote`,content:"On success: `{ quoteCode, exchangeRate, finalAmount, validityPeriod, fromCurrency, toCurrency, totalValue, expiry }`. On failure: `{ success: false, message }`."},{heading:`get_otc_quote`,content:`Field`},{heading:`get_otc_quote`,content:`Type`},{heading:`get_otc_quote`,content:`Description`},{heading:`get_otc_quote`,content:"`quoteCode`"},{heading:`get_otc_quote`,content:`string`},{heading:`get_otc_quote`,content:"Pass unchanged to `confirm_otc_trade`"}
1,{heading:`get_otc_quote`,content:"`exchangeRate`"},{heading:`get_otc_quote`,content:`string`},{heading:`get_otc_quote`,content:'Locked from→to rate. May be `""` when pricing is unavailable — do **not** proceed to confirm in that case'},{heading:`get_otc_quote`,content:"`finalAmount`"},{heading:`get_otc_quote`,content:`string`},{heading:`get_otc_quote`,content:'Estimated receive amount in `toCurrency`. May be `""` when pricing is unavailable'},{heading:`get_otc_quote`,content:"`validityPeriod`"},{heading:`get_otc_quote`,content:`number`},{heading:`get_otc_quote`,content:`Seconds the user has to confirm (UX hint; the server keeps context for 5 minutes)`},{heading:`get_otc_quote`,content:"`expiry`"},{heading:`get_otc_quote`,content:`string`},{heading:`get_otc_quote`,content:`Absolute expiry timestamp (ISO 8601 UTC)`},{heading:`get_otc_quote`,content:"Always display `exchangeRate` and `finalAmount` to the user before calling `confirm_otc_trade`."},{heading:`confirm_otc_trade`,content:`Step 2 of OTC exchange. Executes the trade at the live rate.`},{heading:`confirm_otc_trade`,content:"The server re-fetches a fresh rate at confirm time; the executed `exchangeRate` and `finalAmount` in this response are the final settled values and may differ from the `get_otc_quote` values. Failures are HTTP errors: `410` = quote context expired; `409` = rate drift exceeded. On either error, do not auto-retry — call `get_otc_quote` again."},{heading:`confirm_otc_trade`,content:`**Parameters**`},{heading:`confirm_otc_trade`,content:`Name`},{heading:`confirm_otc_trade`,content:`Type`},{heading:`confirm_otc_trade`,content:`Required`},{heading:`confirm_otc_trade`,content:`Notes`},{heading:`confirm_otc_trade`,content:"`quoteCode`"},{heading:`confirm_otc_trade`,content:`string`},{heading:`confirm_otc_trade`,content:`yes`},{heading:`confirm_otc_trade`,content:"`quoteCode` returned by `get_otc_quote`"},{heading:`confirm_otc_trade`,content:`**Returns**`},{heading:`confirm_otc_trade`,content:"`{ id, tradeCode, point, exchangeRate?, finalAmount? }`"},{heading:`confirm_otc_trade`,content:`Field`},{heading:`confirm_otc_trade`,content:`Type`},{heading:`confirm_otc_trade`,content:`Description`},{heading:`confirm_otc_trade`,content:"`id`"},{heading:`confirm_otc_trade`,content:`number`},{heading:`confirm_otc_trade`,content:`Internal trade record ID`},{heading:`confirm_otc_trade`,content:"`tradeCode`"},{heading:`confirm_otc_trade`,content:`string`},{heading:`confirm_otc_trade`,content:`Transaction reference code — show as the trade identifier`},{heading:`confirm_otc_trade`,content:"`point`"},{heading:`confirm_otc_trade`,content:`string`},{heading:`confirm_otc_trade`,content:`Loyalty/reward points earned (decimal string)`},{heading:`confirm_otc_trade`,content:"`exchangeRate`"},{heading:`confirm_otc_trade`,content:`string (optional)`},{heading:`confirm_otc_trade`,content:`Actual executed exchange rate`},{heading:`confirm_otc_trade`,content:"`finalAmount`"},{heading:`confirm_otc_trade`,content:`string (optional)`},{heading:`confirm_otc_trade`,content:"Actual amount received in `toCurrency`"},{heading:`get_otc_trade_detail`,content:"Look up the full detail of a settled or pending OTC trade by its `tradeCode`. Read-only."},{heading:`get_otc_trade_detail`,content:`**Parameters**`},{heading:`get_otc_trade_detail`,content:`Name`},{heading:`get_otc_trade_detail`,content:`Type`},{heading:`get_otc_trade_detail`,content:`Required`},{heading:`get_otc_trade_detail`,content:`Notes`},{heading:`get_otc_trade_detail`,content:"`tradeCode`"},{heading:`get_otc_trade_detail`,content:`string`},{heading:`get_otc_trade_detail`,content:`yes`},{heading:`get_otc_trade_detail`,content:"OTC trade code (e.g. the code returned by `confirm_otc_trade`)"},{heading:`get_otc_trade_detail`,content:`**Returns**`},{heading:`get_otc_trade_detail`,content:"`{ trade: object | null }` — `null` when no trade matches the code."},{heading:`get_otc_trade_detail`,content:"`trade` fields:"},{heading:`get_otc_trade_detail`,content:`Field`},{heading:`get_otc_trade_detail`,content:`Type`},{heading:`get_otc_trade_detail`,content:`Description`},{heading:`get_otc_trade_detail`,content:"`tradeCode`"},{heading:`get_otc_trade_detail`,content:`string`},{heading:`get_otc_trade_detail`,content:`Unique OTC trade code`},{heading:`get_otc_trade_detail`,content:"`tradeStatus`"},{heading:`get_otc_trade_detail`,content:`number`},{heading:`get_otc_trade_detail`,content:"Status code (e.g. `1` = pending, `4` = settled)"},{heading:`get_otc_trade_detail`,content:"`tradingAction`"},{heading:`get_otc_trade_detail`,content:`number`},{heading:`get_otc_trade_detail`,content:"`1` = buy base, `2` = sell base"},{heading:`get_otc_trade_detail`,content:"`buyerCode`"},{heading:`get_otc_trade_detail`,content:`string`},{heading:`get_otc_trade_detail`,content:`Buyer participant code`},{heading:`get_otc_trade_detail`,content:"`buyerName`"},{heading:`get_otc_trade_detail`,content:`string`},{heading:`get_otc_trade_detail`,content:`Buyer display name`},{heading:`get_otc_trade_detail`,content:"`sellerCode`"},{heading:`get_otc_trade_detail`,content:`string`},{heading:`get_otc_trade_detail`,content:`Seller participant code`},{heading:`get_otc_trade_detail`,content:"`sellerName`"},{heading:`get_otc_trade_detail`,content:`string`},{heading:`get_otc_trade_detail`,content:`Seller display name`},{heading:`get_otc_trade_detail`,content:"`baseCurrency`"},{heading:`get_otc_trade_detail`,content:`string`},{heading:`get_otc_trade_detail`,content:`Base currency code`},{heading:`get_otc_trade_detail`,content:"`quoteCurrency`"},{heading:`get_otc_trade_detail`,content:`string`},{heading:`get_otc_trade_detail`,content:`Quote currency code`},{heading:`get_otc_trade_detail`,content:"`baseQuantity`"},{heading:`get_otc_trade_detail`,content:`string`},{heading:`get_otc_trade_detail`,content:`Quantity of base currency`}
1,{heading:`get_otc_trade_detail`,content:"`quoteAmount`"},{heading:`get_otc_trade_detail`,content:`string`},{heading:`get_otc_trade_detail`,content:`Amount of quote currency exchanged`},{heading:`get_otc_trade_detail`,content:"`quotePrice`"},{heading:`get_otc_trade_detail`,content:`string`},{heading:`get_otc_trade_detail`,content:`Quoted rate before adjustments`},{heading:`get_otc_trade_detail`,content:"`finalPrice`"},{heading:`get_otc_trade_detail`,content:`string`},{heading:`get_otc_trade_detail`,content:`Final locked exchange rate`},{heading:`get_otc_trade_detail`,content:"`tradeTime`"},{heading:`get_otc_trade_detail`,content:`string`},{heading:`get_otc_trade_detail`,content:`Trade creation timestamp (ISO 8601)`},{heading:`get_otc_trade_detail`,content:"`settleTime`"},{heading:`get_otc_trade_detail`,content:`string`},{heading:`get_otc_trade_detail`,content:`Scheduled settlement timestamp (ISO 8601)`},{heading:`get_otc_trade_detail`,content:"`updatedTime`"},{heading:`get_otc_trade_detail`,content:`string`},{heading:`get_otc_trade_detail`,content:`Last status update timestamp (ISO 8601)`},{heading:`fiat-deposit`,content:"Requires `deposit` module permission."},{heading:`get_fiat_deposit_currencies`,content:`List fiat currencies available for deposit. Read-only.`},{heading:`get_fiat_deposit_currencies`,content:`**Parameters**`},{heading:`get_fiat_deposit_currencies`,content:`Name`},{heading:`get_fiat_deposit_currencies`,content:`Type`},{heading:`get_fiat_deposit_currencies`,content:`Required`},{heading:`get_fiat_deposit_currencies`,content:`Notes`},{heading:`get_fiat_deposit_currencies`,content:"`withdrawalParty`"},{heading:`get_fiat_deposit_currencies`,content:`string (enum)`},{heading:`get_fiat_deposit_currencies`,content:`no`},{heading:`get_fiat_deposit_currencies`,content:"`'first_party'` or `'third_party'`. Defaults to first-party"},{heading:`get_fiat_deposit_currencies`,content:"`isSameNameAccount`"},{heading:`get_fiat_deposit_currencies`,content:`boolean`},{heading:`get_fiat_deposit_currencies`,content:`no`},{heading:`get_fiat_deposit_currencies`,content:"`true` for named-account (same-name) deposit flow"},{heading:`get_fiat_deposit_currencies`,content:`**Returns**`},{heading:`get_fiat_deposit_currencies`,content:'`{ currencies: string[] }` — available fiat currency codes (e.g. `"USD"`, `"EUR"`, `"GBP"`).'},{heading:`get_deposit_bank_account`,content:`Get MetaComp's bank account details for a given currency (where to wire funds). Read-only.`},{heading:`get_deposit_bank_account`,content:`**Parameters**`},{heading:`get_deposit_bank_account`,content:`Name`},{heading:`get_deposit_bank_account`,content:`Type`},{heading:`get_deposit_bank_account`,content:`Required`},{heading:`get_deposit_bank_account`,content:`Notes`},{heading:`get_deposit_bank_account`,content:"`currency`"},{heading:`get_deposit_bank_account`,content:`string`},{heading:`get_deposit_bank_account`,content:`yes`},{heading:`get_deposit_bank_account`,content:'Fiat currency code (e.g. `"USD"`, `"EUR"`, `"GBP"`)'},{heading:`get_deposit_bank_account`,content:`**Returns**`},{heading:`get_deposit_bank_account`,content:"`{ accounts: [{ ownerName, ownerAddress, ownerCountryCode, baNumber, swiftCode, bankName, bankAddress, countryCode }] }` — MetaComp's receiving bank account details."},{heading:`get_fiat_deposit_bank_accounts`,content:`List payor bank accounts available for fiat deposit. Read-only.`},{heading:`get_fiat_deposit_bank_accounts`,content:`**Parameters**`},{heading:`get_fiat_deposit_bank_accounts`,content:`Name`},{heading:`get_fiat_deposit_bank_accounts`,content:`Type`},{heading:`get_fiat_deposit_bank_accounts`,content:`Required`},{heading:`get_fiat_deposit_bank_accounts`,content:`Notes`},{heading:`get_fiat_deposit_bank_accounts`,content:"`withdrawalParty`"},{heading:`get_fiat_deposit_bank_accounts`,content:`string (enum)`},{heading:`get_fiat_deposit_bank_accounts`,content:`yes`},{heading:`get_fiat_deposit_bank_accounts`,content:"`'first_party'` or `'third_party'`"},{heading:`get_fiat_deposit_bank_accounts`,content:`**Returns**`},{heading:`get_fiat_deposit_bank_accounts`,content:"`{ accounts: [{ baNumber, ownerName, ownerAddress?, ownerCountryCode?, swiftCode?, bankName?, bankAddress?, countryCode?, ownerType?, relationship?, ownerCorporateCountryCode?, baTag?, relationType? }] }` — payor bank accounts (own accounts for first-party; registered COBO payors for third-party)."},{heading:`get_third_party_fiat_deposit_estimate`,content:`Estimate a third-party (COBO) fiat deposit — fee calculation and bank account details. Read-only.`},{heading:`get_third_party_fiat_deposit_estimate`,content:`**Parameters**`},{heading:`get_third_party_fiat_deposit_estimate`,content:`Name`},{heading:`get_third_party_fiat_deposit_estimate`,content:`Type`},{heading:`get_third_party_fiat_deposit_estimate`,content:`Required`},{heading:`get_third_party_fiat_deposit_estimate`,content:`Notes`},{heading:`get_third_party_fiat_deposit_estimate`,content:"`currency`"},{heading:`get_third_party_fiat_deposit_estimate`,content:`string`},{heading:`get_third_party_fiat_deposit_estimate`,content:`yes`},{heading:`get_third_party_fiat_deposit_estimate`,content:'Fiat currency code (e.g. `"USD"`)'},{heading:`get_third_party_fiat_deposit_estimate`,content:"`amount`"},{heading:`get_third_party_fiat_deposit_estimate`,content:`string`},{heading:`get_third_party_fiat_deposit_estimate`,content:`yes`},{heading:`get_third_party_fiat_deposit_estimate`,content:`Deposit amount as positive decimal string`},{heading:`get_third_party_fiat_deposit_estimate`,content:"`feePayer`"},{heading:`get_third_party_fiat_deposit_estimate`,content:`string (enum)`},{heading:`get_third_party_fiat_deposit_estimate`,content:`yes`},{heading:`get_third_party_fiat_deposit_estimate`,content:"`'paid_by_me'` or `'paid_by_third_party'`"},{heading:`get_third_party_fiat_deposit_estimate`,content:"`baNumber`"},{heading:`get_third_party_fiat_deposit_estimate`,content:`string`},{heading:`get_third_party_fiat_deposit_estimate`,content:`yes`},{heading:`get_third_party_fiat_deposit_estimate`,content:"Payor bank account number — must be from `get_fiat_deposit_bank_accounts`"},{heading:`get_third_party_fiat_deposit_estimate`,content:"`isSameNameAccount`"},{heading:`get_third_party_fiat_deposit_estimate`,content:`boolean`},{heading:`get_third_party_fiat_deposit_estimate`,content:`no`},{heading:`get_third_party_fiat_deposit_estimate`,content:"`true` for named-account flow"},{heading:`get_third_party_fiat_deposit_estimate`,content:`**Returns**`},{heading:`get_third_party_fiat_deposit_estimate`,content:"`{ accountType: 'fiat', depositType, amountSent, estimatedServiceFee, estimatedAmountReceived, payorBankAccount, receiverBankAccount }`. Show fee and amounts to the user for confirmation before calling `execute_third_party_fiat_deposit_submit`."},{heading:`execute_third_party_fiat_deposit_submit`,content:`Submit a third-party (COBO) fiat deposit request.`},{heading:`execute_third_party_fiat_deposit_submit`,content:"Call `get_third_party_fiat_deposit_estimate` first and confirm fee/amounts with the user before calling this tool."},{heading:`execute_third_party_fiat_deposit_submit`,content:`**Parameters**`},{heading:`execute_third_party_fiat_deposit_submit`,content:`Name`},{heading:`execute_third_party_fiat_deposit_submit`,content:`Type`},{heading:`execute_third_party_fiat_deposit_submit`,content:`Required`},{heading:`execute_third_party_fiat_deposit_submit`,content:`Notes`},{heading:`execute_third_party_fiat_deposit_submit`,content:"`currency`"},{heading:`execute_third_party_fiat_deposit_submit`,content:`string`},{heading:`execute_third_party_fiat_deposit_submit`,content:`yes`},{heading:`execute_third_party_fiat_deposit_submit`,content:'Fiat currency code (e.g. `"USD"`)'},{heading:`execute_third_party_fiat_deposit_submit`,content:"`amount`"},{heading:`execute_third_party_fiat_deposit_submit`,content:`string`},{heading:`execute_third_party_fiat_deposit_submit`,content:`yes`},{heading:`execute_third_party_fiat_deposit_submit`,content:`Deposit amount as positive decimal string`},{heading:`execute_third_party_fiat_deposit_submit`,content:"`feePayer`"},{heading:`execute_third_party_fiat_deposit_submit`,content:`string (enum)`},{heading:`execute_third_party_fiat_deposit_submit`,content:`yes`},{heading:`execute_third_party_fiat_deposit_submit`,content:"`'paid_by_me'` or `'paid_by_third_party'`"},{heading:`execute_third_party_fiat_deposit_submit`,content:"`baNumber`"},{heading:`execute_third_party_fiat_deposit_submit`,content:`string`},{heading:`execute_third_party_fiat_deposit_submit`,content:`yes`},{heading:`execute_third_party_fiat_deposit_submit`,content:"Payor bank account number (from `get_fiat_deposit_bank_accounts`)"},{heading:`execute_third_party_fiat_deposit_submit`,content:"`isSameNameAccount`"},{heading:`execute_third_party_fiat_deposit_submit`,content:`boolean`},{heading:`execute_third_party_fiat_deposit_submit`,content:`no`},{heading:`execute_third_party_fiat_deposit_submit`,content:"`true` for named-account flow"},{heading:`execute_third_party_fiat_deposit_submit`,content:`**Returns**`},{heading:`execute_third_party_fiat_deposit_submit`,content:'`{ depositNumber: string }` — the deposit requirement number (e.g. `"DP2026..."`).'},{heading:`get_named_account_currencies`,content:`List fiat currencies supported for same-name (named) account transfers. Read-only.`},{heading:`get_named_account_currencies`,content:`**Parameters**`},{heading:`get_named_account_currencies`,content:`None.`},{heading:`get_named_account_currencies`,content:`**Returns**`},{heading:`get_named_account_currencies`,content:'`{ currencies: string[] }` — currency codes supporting named-account deposits (e.g. `"SGD"`, `"EUR"`, `"USD"`).'},{heading:`get_named_account_list`,content:`Get the user's registered same-name (named) bank accounts for first-party fiat transfers. Read-only.`},{heading:`get_named_account_list`,content:`**Parameters**`},{heading:`get_named_account_list`,content:`None.`},{heading:`get_named_account_list`,content:`**Returns**`},{heading:`get_named_account_list`,content:"`{ accounts: [{ baNumber, ownerName, ownerAddress?, ownerCountryCode?, swiftCode?, bankName?, bankAddress?, countryCode?, ... }] }` — the user's bound same-name bank account details. Call `get_named_account_currencies` first to confirm the selected currency supp
1orts named-account transfers."},{heading:`crypto-deposit`,content:"Requires `deposit` module permission."},{heading:`get_crypto_deposit_currencies`,content:`List crypto currencies available for deposit. Read-only.`},{heading:`get_crypto_deposit_currencies`,content:`**Parameters**`},{heading:`get_crypto_deposit_currencies`,content:`Name`},{heading:`get_crypto_deposit_currencies`,content:`Type`},{heading:`get_crypto_deposit_currencies`,content:`Required`},{heading:`get_crypto_deposit_currencies`,content:`Notes`},{heading:`get_crypto_deposit_currencies`,content:"`withdrawalParty`"},{heading:`get_crypto_deposit_currencies`,content:`string (enum)`},{heading:`get_crypto_deposit_currencies`,content:`no`},{heading:`get_crypto_deposit_currencies`,content:"`'first_party'` or `'third_party'`. Defaults to first-party"},{heading:`get_crypto_deposit_currencies`,content:`**Returns**`},{heading:`get_crypto_deposit_currencies`,content:'`{ currencies: string[] }` — available crypto currency codes (e.g. `"USDT"`, `"BTC"`, `"ETH"`).'},{heading:`get_crypto_deposit_networks`,content:`Get available blockchain networks for depositing a specific cryptocurrency. Read-only.`},{heading:`get_crypto_deposit_networks`,content:`**Parameters**`},{heading:`get_crypto_deposit_networks`,content:`Name`},{heading:`get_crypto_deposit_networks`,content:`Type`},{heading:`get_crypto_deposit_networks`,content:`Required`},{heading:`get_crypto_deposit_networks`,content:`Notes`},{heading:`get_crypto_deposit_networks`,content:"`currency`"},{heading:`get_crypto_deposit_networks`,content:`string`},{heading:`get_crypto_deposit_networks`,content:`yes`},{heading:`get_crypto_deposit_networks`,content:'Crypto currency code (e.g. `"USDT"`, `"BTC"`, `"ETH"`)'},{heading:`get_crypto_deposit_networks`,content:"`withdrawalParty`"},{heading:`get_crypto_deposit_networks`,content:`string (enum)`},{heading:`get_crypto_deposit_networks`,content:`no`},{heading:`get_crypto_deposit_networks`,content:"`'first_party'` or `'third_party'`. Defaults to first-party"},{heading:`get_crypto_deposit_networks`,content:`**Returns**`},{heading:`get_crypto_deposit_networks`,content:'`{ networks: string[] }` — supported blockchain networks (e.g. `"Ethereum"`, `"Tron"`, `"Bitcoin"`).'},{heading:`get_crypto_wallet_addresses`,content:`Get the user's crypto deposit wallet addresses for a blockchain network, with QR codes. Read-only.`},{heading:`get_crypto_wallet_addresses`,content:`**Parameters**`},{heading:`get_crypto_wallet_addresses`,content:`Name`},{heading:`get_crypto_wallet_addresses`,content:`Type`},{heading:`get_crypto_wallet_addresses`,content:`Required`},{heading:`get_crypto_wallet_addresses`,content:`Notes`},{heading:`get_crypto_wallet_addresses`,content:"`network`"},{heading:`get_crypto_wallet_addresses`,content:`string`},{heading:`get_crypto_wallet_addresses`,content:`yes`},{heading:`get_crypto_wallet_addresses`,content:'Blockchain network (e.g. `"Ethereum"`, `"Tron"`, `"Bitcoin"`)'},{heading:`get_crypto_wallet_addresses`,content:`**Returns**`},{heading:`get_crypto_wallet_addresses`,content:"`{ addresses: [{ walletAddress, qrCodeDataUrl }] }`. QR codes are also shipped as MCP image content blocks — most clients render them inline. Do not attempt to render the `data:` URL via markdown `![]()` in chat UIs."},{heading:`get_third_party_crypto_deposit_estimate`,content:`Estimate a third-party (COBO) crypto deposit — fee, wallet address, and QR code. Read-only.`},{heading:`get_third_party_crypto_deposit_estimate`,content:`**Parameters**`},{heading:`get_third_party_crypto_deposit_estimate`,content:`Name`},{heading:`get_third_party_crypto_deposit_estimate`,content:`Type`},{heading:`get_third_party_crypto_deposit_estimate`,content:`Required`},{heading:`get_third_party_crypto_deposit_estimate`,content:`Notes`},{heading:`get_third_party_crypto_deposit_estimate`,content:"`network`"},{heading:`get_third_party_crypto_deposit_estimate`,content:`string`},{heading:`get_third_party_crypto_deposit_estimate`,content:`yes`},{heading:`get_third_party_crypto_deposit_estimate`,content:'Blockchain network (e.g. `"Tron"`, `"Ethereum"`, `"Bitcoin"`)'},{heading:`get_third_party_crypto_deposit_estimate`,content:"`currency`"},{heading:`get_third_party_crypto_deposit_estimate`,content:`string`},{heading:`get_third_party_crypto_deposit_estimate`,content:`yes`},{heading:`get_third_party_crypto_deposit_estimate`,content:'Crypto currency code (e.g. `"USDT"`, `"BTC"`)'},{heading:`get_third_party_crypto_deposit_estimate`,content:"`amount`"},{heading:`get_third_party_crypto_deposit_estimate`,content:`string`},{heading:`get_third_party_crypto_deposit_estimate`,content:`yes`},{heading:`get_third_party_crypto_deposit_estimate`,content:`Deposit amount as positive decimal string`},{heading:`get_third_party_crypto_deposit_estimate`,content:"`feePayer`"},{heading:`get_third_party_crypto_deposit_estimate`,content:`string (enum)`},{heading:`get_third_party_crypto_deposit_estimate`,content:`yes`},{heading:`get_third_party_crypto_deposit_estimate`,content:"`'paid_by_me'` or `'paid_by_third_party'`"},{heading:`get_third_party_crypto_deposit_estimate`,content:`**Returns**`},{heading:`get_third_party_crypto_deposit_estimate`,content:"`{ accountType: 'crypto', depositType, feePayer, amountSent, estimatedServiceFee, estimatedAmountReceived, walletAddress, qrCodeDataUrl }`."},{heading:`withdrawal`,content:"Requires `withdrawal` module permission. Always call `get_withdrawal_quote` before executing to confirm service fee and minimum amount. For third-party withdrawals, `purposeOfTransaction` is required on execute calls."},{heading:`get_withdrawal_currencies`,content:`List currencies available for withdrawal. Read-only.`},{heading:`get_withdrawal_currencies`,content:`**Parameters**`},{heading:`get_withdrawal_currencies`,content:`Name`},{heading:`get_withdrawal_currencies`,content:`Type`},{heading:`get_withdrawal_currencies`,content:`Required`},{heading:`get_withdrawal_currencies`,content:`Notes`},{heading:`get_withdrawal_currencies`,content:"`currencyType`"},{heading:`get_withdrawal_currencies`,content:"`1` or `2` (integer literal)"},{heading:`get_withdrawal_currencies`,content:`yes`},{heading:`get_withdrawal_currencies`,content:"`1` = fiat, `2` = crypto"},{heading:`get_withdrawal_currencies`,content:"`withdrawalParty`"},{heading:`get_withdrawal_currencies`,content:"`1` or `2` (integer literal)"},{heading:`get_withdrawal_currencies`,content:`yes`},{heading:`get_withdrawal_currencies`,content:"`1` = first-party, `2` = third-party"},{heading:`get_withdrawal_currencies`,content:"`isSameNameAccount`"},{heading:`get_withdrawal_currencies`,content:`boolean`},{heading:`get_withdrawal_currencies`,content:`no`},{heading:`get_withdrawal_currencies`,content:"Fiat only; `true` = same-name account path. Must be omitted or `false` when `currencyType = 2`"},{heading:`get_withdrawal_currencies`,content:`**Returns**`},{heading:`get_withdrawal_currencies`,content:"`{ currencies: string[] }` — currency codes available for withdrawal."},{heading:`get_withdrawal_quote`,content:`Get the service fee and minimum withdrawal amount in a single call. Read-only.`},{heading:`get_withdrawal_quote`,content:`**Parameters**`},{heading:`get_withdrawal_quote`,content:`Name`},{heading:`get_withdrawal_quote`,content:`Type`},{heading:`get_withdrawal_quote`,content:`Required`},{heading:`get_withdrawal_quote`,content:`Notes`},{heading:`get_withdrawal_quote`,content:"`withdrawalParty`"},{heading:`get_withdrawal_quote`,content:"`1` or `2` (integer literal)"},{heading:`get_withdrawal_quote`,content:`yes`},{heading:`get_withdrawal_quote`,content:"`1` = first-party, `2` = third-party"},{heading:`get_withdrawal_quote`,content:"`currency`"},{heading:`get_withdrawal_quote`,content:`string`},{heading:`get_withdrawal_quote`,content:`yes`},{heading:`get_withdrawal_quote`,content:`Uppercase alphanumeric currency code`},{heading:`get_withdrawal_quote`,content:"`amount`"},{heading:`get_withdrawal_quote`,content:`string`},{heading:`get_withdrawal_quote`,content:`yes`},{heading:`get_withdrawal_quote`,content:`Withdrawal amount as positive decimal string`},{heading:`get_withdrawal_quote`,content:"`isSameNameAccount`"},{heading:`get_withdrawal_quote`,content:`boolean`},{heading:`get_withdrawal_quote`,content:`no`},{heading:`get_withdrawal_quote`,content:`Fiat only`},{heading:`get_withdrawal_quote`,content:`**Returns**`},{heading:`get_withdrawal_quote`,content:"`{ fee: { serviceFee: string }, minimumAmount: { minimumAmount: number } }`."},{heading:`get_fiat_withdrawal_bank_accounts`,content:`List non-same-name fiat withdrawal bank accounts (regular bound accounts). Read-only.`},{heading:`get_fiat_withdrawal_bank_accounts`,content:`**Parameters**`},{heading:`get_fiat_withdrawal_bank_accounts`,content:`None.`},{heading:`get_fiat_withdrawal_bank_accounts`,content:`**Returns**`},{heading:`get_fiat_withdrawal_bank_accounts`,content:"`{ accounts: [{ baNumber, ownerName, ownerAddress?, ownerCountryCode?, swiftCode?, bankName?, bankAddress?, countryCode?, ownerType?, ... }] }`. For same-name accounts, use `get_named_account_list` instead."},{heading:`execute_fiat_withdrawal`,content:`Execute a fiat withdrawal.`},{heading:`execute_fiat_withdrawal`,content:"Confirm fee and minimum with `get_withdrawal_quote` and confirm the destination bank account with the user before calling this tool."},{heading:`execute_fiat_withdrawal`,content:`**Parameters**`},{heading:`execute_fiat_withdrawal`,content:`Name`},{heading:`execute_fiat_withdrawal`,content:`Type`},{heading:`execute_fiat_withdrawal`,content:`Required`},{heading:`execute_fiat_withdrawal`,content:`Notes`},{heading:`execute_fiat_withdrawal`,content:"`withdrawalParty`"},{heading:`execute_fiat_withdrawal`,content:"`1` or `2` (integer literal)"},{heading:`execute_fiat_withdrawal`,content:`yes`},{heading:`execute_fiat_withdrawal`,content:"`1` = first-party, `2` = third-party"},{heading:`execute_fiat_withdrawal`,content:"`currency`"},{heading:`execute_fiat_withdrawal`,content:`string`},{heading:`execute_fiat_withdrawal`,content:`yes`},{heading:`execute_fiat_withdrawal`,content:`Uppercase alphabetic fiat currency code`},{heading:`execute_fiat_withdrawal`,content:"`amount`"},{heading:`execute_fiat_withdrawal`,content:`string`},{heading:`execute_fiat_withdrawal`,content:`yes`},{heading:`execute_fiat_withdrawal`,content:`Withdrawal amount as positive decimal string`},{heading:`execute_fiat_withdrawal`,content:"`bankAccountNumber`"},{heading:`execute_fiat_withdrawal`,content:`string`},{heading:`execute_fiat_withdrawal`,content:`yes`},{heading:`execute_fiat_withdrawal`,content:`Destination bank account number`},{heading:`execute_fiat_withdrawal`,content:"`verificationCode`"},{heading:`execute_fiat_withdrawal`,content:`string`},{heading:`execute_fiat_withdrawal`,content:`yes`},{heading:`execute_fiat_withdrawal`,content:`One-time verification code from MetaComp authentication`},{heading:`execute_fiat_withdrawal`,content:"`chargeType`"},{heading:`execute_fiat_withdrawal`,content:`integer (1–3)`},{heading:`execute_fiat_withdrawal`,content:`no`},{heading:`execute_fiat_withdrawal`,content:"`1` = beneficiary bears fee, `2` = sender bears fee, `3` = shared"},{heading:`execute_fiat_withdrawal`,content:"`isSameNameAccount`"},{heading:`execute_fiat_withdrawal`,content:`boolean`},{heading:`execute_fiat_withdrawal`,content:`no`},{heading:`execute_fiat_withdrawal`,content:"`true` for same-name account path (fiat only)"},{heading:`execute_fiat_withdrawal`,content:"`purposeOfTransaction`"},{heading:`execute_fiat_withdrawal`,content:`string`},{heading:`execute_fiat_withdrawal`,content:`conditional`},{heading:`execute_fiat_withdrawal`,content:"Required when `withdrawalParty = 2` (third-party)"},{heading:`execute_fiat_withdrawal`,content:`**Returns**`},{heading:`execute_fiat_withdrawal`,content:"`{ txCode, currency, status, withdrawalAmount?, chargeAmount?, totalChargeAmount?, amountReceived?, to?, network?, createAt?, updateAt? }`. See Response Reference."},{heading:`get_crypto_withdrawal_wallets`,content:`Get crypto wallet addresses for withdrawal, filtered by party type. Read-only.`},{heading:`get_crypto_withdrawal_wallets`,content:`**Parameters**`},{heading:`get_crypto_withdrawal_wallets`,content:`Name`},{heading:`get_crypto_withdrawal_wallets`,content:`Type`},{heading:`get_crypto_withdrawal_wallets`,content:`Required`},{heading:`get_crypto_withdrawal_wallets`,content:`Notes`},{heading:`get_crypto_withdrawal_wallets`,content:"`withdrawalParty`"},{heading:`get_crypto_withdrawal_wallets`,content:"`1` or `2` (integer literal)"},{heading:`get_crypto_withdrawal_wallets`,content:`yes`},{heading:`get_crypto_withdrawal_wallets`,content:"`1` = first-party (own wallets), `2` = third-party (beneficiary wallets)"},{heading:`get_crypto_withdrawal_wallets`,content:`**Returns**`},{heading:`get_crypto_withdrawal_wallets`,content:"`{ wallets: [{ walletAddress, network, walletTag, ownerName }] }`."},{heading:`execute_crypto_withdrawal`,content:`Execute a cryptocurrency withdrawal.`},{heading:`execute_crypto_withdrawal`,content:"For third-party (`withdrawalParty = 2`): call `upload_file` first to obtain a file `id`, then pass it as `proof`. Both `proof` and `purposeOfTransaction` are required for third-party. Missing either will fail server-side validation."},{heading:`execute_crypto_withdrawal`,content:`**Parameters**`},{heading:`execute_crypto_withdrawal`,content:`Name`},{heading:`execute_crypto_withdrawal`,content:`Type`},{heading:`execute_crypto_withdrawal`,content:`Required`},{heading:`execute_crypto_withdrawal`,content:`Notes`},{heading:`execute_crypto_withdrawal`,content:"`withdrawalParty`"},{heading:`execute_crypto_withdrawal`,content:"`1` or `2` (integer literal)"},{heading:`execute_crypto_withdrawal`,content:`yes`},{heading:`execute_crypto_withdrawal`,content:"`1` = first-party, `2` = third-party"},{heading:`execute_crypto_withdrawal`,content:"`currency`"},{heading:`execute_crypto_withdrawal`,content:`string`},{heading:`execute_crypto_withdrawal`,content:`yes`},{heading:`execute_crypto_withdrawal`,content:`Uppercase alphanumeric crypto currency code`},{heading:`execute_crypto_withdrawal`,content:"`amount`"},{heading:`execute_crypto_withdrawal`,content:`string`},{heading:`execute_crypto_withdrawal`,content:`yes`},{heading:`execute_crypto_withdrawal`,content:`Withdrawal amount as positive decimal string`},{heading:`execute_crypto_withdrawal`,content:"`walletAddress`"},{heading:`execute_crypto_withdrawal`,content:`string`},{heading:`execute_crypto_withdrawal`,content:`yes`},{heading:`execute_crypto_withdrawal`,content:`Destination wallet address`},{heading:`execute_crypto_withdrawal`,content:"`network`"},{heading:`execute_crypto_withdrawal`,content:`string`},{heading:`execute_crypto_withdrawal`,content:`yes`},{heading:`execute_crypto_withdrawal`,content:`Blockchain network (must be supported for the currency)`},{heading:`execute_crypto_withdrawal`,content:"`verificationCode`"},{heading:`execute_crypto_withdrawal`,content:`string`},{heading:`execute_crypto_withdrawal`,content:`yes`},{heading:`execute_crypto_withdrawal`,content:`One-time verification code from MetaComp authentication`},{heading:`execute_crypto_withdrawal`,content:"`proof`"},{heading:`execute_crypto_withdrawal`,content:`integer`},{heading:`execute_crypto_withdrawal`,content:`conditional`},{heading:`execute_crypto_withdrawal`,content:"File `id` from `upload_file`. Required when `withdrawalParty = 2`"},{heading:`execute_crypto_withdrawal`,content:"`purposeOfTransaction`"},{heading:`execute_crypto_withdrawal`,content:`string`},{heading:`execute_crypto_withdrawal`,content:`conditional`},{heading:`execute_crypto_withdrawal`,content:"Free-text purpose. Required when `withdrawalParty = 2`"},{heading:`execute_crypto_withdrawal`,content:`**Returns**`},{heading:`execute_crypto_withdrawal`,content:"`{ txCode, currency, status, withdrawalAmount?, chargeAmount?, totalChargeAmount?, amountReceived?, to?, network?, createAt?, updateAt? }`. See Response Reference."}
1,{heading:`upload_file`,content:`Upload a supporting document as a base64 string.`},{heading:`upload_file`,content:"Required before `execute_crypto_withdrawal` when `withdrawalParty = 2`. The returned `id` is passed as `proof`."},{heading:`upload_file`,content:`**Parameters**`},{heading:`upload_file`,content:`Name`},{heading:`upload_file`,content:`Type`},{heading:`upload_file`,content:`Required`},{heading:`upload_file`,content:`Notes`},{heading:`upload_file`,content:"`fileBase64`"},{heading:`upload_file`,content:`string`},{heading:`upload_file`,content:`yes`},{heading:`upload_file`,content:`Base64-encoded file content. Max \\~7M chars (≈ 5MB binary)`},{heading:`upload_file`,content:"`originalName`"},{heading:`upload_file`,content:`string`},{heading:`upload_file`,content:`yes`},{heading:`upload_file`,content:'Original file name with extension (e.g. `"invoice.pdf"`). Recorded for audit trail'},{heading:`upload_file`,content:"`mimeType`"},{heading:`upload_file`,content:`string`},{heading:`upload_file`,content:`no`},{heading:`upload_file`,content:'MIME type (e.g. `"application/pdf"`, `"image/png"`). Defaults to `"application/octet-stream"`'},{heading:`upload_file`,content:`**Returns**`},{heading:`upload_file`,content:"`{ id: number, physicalName: string }`. Use `id` as the `proof` parameter in `execute_crypto_withdrawal`."},{heading:`get_deposit_list`,content:`Query paginated deposit transaction records. Read-only.`},{heading:`get_deposit_list`,content:`**Parameters**`},{heading:`get_deposit_list`,content:`Name`},{heading:`get_deposit_list`,content:`Type`},{heading:`get_deposit_list`,content:`Required`},{heading:`get_deposit_list`,content:`Notes`},{heading:`get_deposit_list`,content:"`pageNum`"},{heading:`get_deposit_list`,content:`integer ≥ 1`},{heading:`get_deposit_list`,content:`yes`},{heading:`get_deposit_list`,content:`Page number, starting from 1`},{heading:`get_deposit_list`,content:"`pageSize`"},{heading:`get_deposit_list`,content:`integer 1–100`},{heading:`get_deposit_list`,content:`yes`},{heading:`get_deposit_list`,content:`Records per page (max 100)`},{heading:`get_deposit_list`,content:"`payeeAccountType`"},{heading:`get_deposit_list`,content:`number`},{heading:`get_deposit_list`,content:`yes`},{heading:`get_deposit_list`,content:"`1` = fiat deposits, `2` = crypto deposits"},{heading:`get_deposit_list`,content:"`startTime`"},{heading:`get_deposit_list`,content:`string`},{heading:`get_deposit_list`,content:`no`},{heading:`get_deposit_list`,content:'Start of time range: `"YYYY-MM-DD HH:mm:ss"`'},{heading:`get_deposit_list`,content:"`endTime`"},{heading:`get_deposit_list`,content:`string`},{heading:`get_deposit_list`,content:`no`},{heading:`get_deposit_list`,content:'End of time range: `"YYYY-MM-DD HH:mm:ss"`'},{heading:`get_deposit_list`,content:`**Returns**`},{heading:`get_deposit_list`,content:"`{ total, list, pageNum, pageSize, pages }`. Each `list` item: `{ paymentCode, status, statusDesc, currency, totalAmount, receiveAmount, chargeAmount, detail, createAt, updateAt, payerCode, payerName, payeeCode, payeeName, coboInfo, ... }`."},{heading:`get_deposit_list`,content:"Amounts (`totalAmount`, `receiveAmount`, `chargeAmount`) are **integers in minor units** — divide by `10^decimals`. See Response Reference."},{heading:`get_withdrawal_list`,content:`Query paginated withdrawal transaction records. Read-only.`},{heading:`get_withdrawal_list`,content:`**Parameters**`},{heading:`get_withdrawal_list`,content:`Name`},{heading:`get_withdrawal_list`,content:`Type`},{heading:`get_withdrawal_list`,content:`Required`},{heading:`get_withdrawal_list`,content:`Notes`},{heading:`get_withdrawal_list`,content:"`pageNum`"},{heading:`get_withdrawal_list`,content:`integer ≥ 1`},{heading:`get_withdrawal_list`,content:`yes`},{heading:`get_withdrawal_list`,content:`Page number, starting from 1`},{heading:`get_withdrawal_list`,content:"`pageSize`"},{heading:`get_withdrawal_list`,content:`integer 1–100`},{heading:`get_withdrawal_list`,content:`yes`},{heading:`get_withdrawal_list`,content:`Records per page (max 100)`},{heading:`get_withdrawal_list`,content:"`payeeAccountType`"},{heading:`get_withdrawal_list`,content:`number`},{heading:`get_withdrawal_list`,content:`yes`},{heading:`get_withdrawal_list`,content:"`1` = fiat withdrawals, `2` = crypto withdrawals"},{heading:`get_withdrawal_list`,content:"`startTime`"},{heading:`get_withdrawal_list`,content:`string`},{heading:`get_withdrawal_list`,content:`no`},{heading:`get_withdrawal_list`,content:'Start of time range: `"YYYY-MM-DD HH:mm:ss"`'},{heading:`get_withdrawal_list`,content:"`endTime`"},{heading:`get_withdrawal_list`,content:`string`},{heading:`get_withdrawal_list`,content:`no`},{heading:`get_withdrawal_list`,content:'End of time range: `"YYYY-MM-DD HH:mm:ss"`'},{heading:`get_withdrawal_list`,content:`**Returns**`},{heading:`get_withdrawal_list`,content:"`{ total, list, pageNum, pageSize, pages }`. Each `list` item: `{ paymentCode, status, statusDesc, currency, totalAmount, receiveAmount, chargeAmount, paymentType, purposeOfTransaction, pathTo, fee, feeRate, detail, createAt, updateAt, coboInfo, poboInfo, ... }`."},{heading:`get_withdrawal_list`,content:"`paymentType`: `21` = first-party, `22` = third-party. Amou
1nts are **integers in minor units** — divide by `10^decimals`. See Response Reference."},{heading:`fixed-income`,content:"Requires `wealth` module permission. Always call `investor_precheck` before `fip_subscribe` to verify required agreements are signed."},{heading:`get_fip_products`,content:`Query available MetaComp Wealth Fixed Income Products. Read-only.`},{heading:`get_fip_products`,content:`**Parameters**`},{heading:`get_fip_products`,content:`None.`},{heading:`get_fip_products`,content:`**Returns**`},{heading:`get_fip_products`,content:"`{ success, code, msg, data, currencyConvertInfoList? }`"},{heading:`get_fip_products`,content:"`data` is an array of products:"},{heading:`get_fip_products`,content:`Field`},{heading:`get_fip_products`,content:`Type`},{heading:`get_fip_products`,content:`Description`},{heading:`get_fip_products`,content:"`productCode`"},{heading:`get_fip_products`,content:`string`},{heading:`get_fip_products`,content:`Internal product code`},{heading:`get_fip_products`,content:"`productName`"},{heading:`get_fip_products`,content:`string`},{heading:`get_fip_products`,content:`Display name`},{heading:`get_fip_products`,content:"`productType`"},{heading:`get_fip_products`,content:`string`},{heading:`get_fip_products`,content:"Category (currently `FIP`)"},{heading:`get_fip_products`,content:"`term`"},{heading:`get_fip_products`,content:`string`},{heading:`get_fip_products`,content:'Human-readable term (e.g. `"Flexible"`, `"30 Days"`)'},{heading:`get_fip_products`,content:"`termType`"},{heading:`get_fip_products`,content:`integer`},{heading:`get_fip_products`,content:"`1` = flexible/open term, `2` = fixed term"},{heading:`get_fip_products`,content:"`sort`"},{heading:`get_fip_products`,content:`integer`},{heading:`get_fip_products`,content:`Sort order`},{heading:`get_fip_products`,content:"`estApr`"},{heading:`get_fip_products`,content:`string`},{heading:`get_fip_products`,content:`Estimated APR or range (percentage string)`},{heading:`get_fip_products`,content:"`currencyItemList`"},{heading:`get_fip_products`,content:`array`},{heading:`get_fip_products`,content:`Supported currency options (see below)`},{heading:`get_fip_products`,content:"Each `currencyItemList` entry:"},{heading:`get_fip_products`,content:`Field`},{heading:`get_fip_products`,content:`Type`},{heading:`get_fip_products`,content:`Description`},{heading:`get_fip_products`,content:"`id`"},{heading:`get_fip_products`,content:`string`},{heading:`get_fip_products`,content:"Currency item unique identifier — pass to `fip_subscribe`"},{heading:`get_fip_products`,content:"`currency`"},{heading:`get_fip_products`,content:`string`},{heading:`get_fip_products`,content:'Currency code (e.g. `"USD"`, `"USDT"`, `"USDC"`, `"BTC"`, `"ETH"`)'},{heading:`get_fip_products`,content:"`estApr`"},{heading:`get_fip_products`,content:`string`},{heading:`get_fip_products`,content:`APR for this currency option`},{heading:`get_fip_products`,content:"`term`"},{heading:`get_fip_products`,content:`string`},{heading:`get_fip_products`,content:`Human-readable term`},{heading:`get_fip_products`,content:"`termType`"},{heading:`get_fip_products`,content:`integer`},{heading:`get_fip_products`,content:"`1` = flexible, `2` = fixed"},{heading:`get_fip_products`,content:"`termDays`"},{heading:`get_fip_products`,content:`integer`},{heading:`get_fip_products`,content:`Term in days; negative values indicate flexible settlement products`},{heading:`get_fip_products`,content:"`liquidity`"},{heading:`get_fip_products`,content:`string`},{heading:`get_fip_products`,content:'Settlement description (e.g. `"(T + 1 Settlement)"`)'},{heading:`get_fip_products`,content:"`mhp`"},{heading:`get_fip_products`,content:`string`},{heading:`get_fip_products`,content:`Minimum holding period description; empty string if not specified`},{heading:`get_fip_products`,content:"`issuer`"},{heading:`get_fip_products`,content:`string`},{heading:`get_fip_products`,content:`Issuer name`},{heading:`get_fip_agreement`,content:`Query FIP agreement documents (PDF links) for a specific product and currency. Read-only.`},{heading:`get_fip_agreement`,content:`**Parameters**`},{heading:`get_fip_agreement`,content:`Name`},{heading:`get_fip_agreement`,content:`Type`},{heading:`get_fip_agreement`,content:`Required`},{heading:`get_fip_agreement`,content:`Notes`},{heading:`get_fip_agreement`,content:"`productType`"},{heading:`get_fip_agreement`,content:`string`},{heading:`get_fip_agreement`,content:`yes`},{heading:`get_fip_agreement`,content:'Product category (e.g. `"FIP"`)'}
1,{heading:`get_fip_agreement`,content:"`productCode`"},{heading:`get_fip_agreement`,content:`string`},{heading:`get_fip_agreement`,content:`yes`},{heading:`get_fip_agreement`,content:'Product code (e.g. `"FIP_OpenTerm_T+1"`, `"FIP_30Days"`)'},{heading:`get_fip_agreement`,content:"`currency`"},{heading:`get_fip_agreement`,content:`string`},{heading:`get_fip_agreement`,content:`yes`},{heading:`get_fip_agreement`,content:'Currency code (e.g. `"USD"`, `"USDT"`, `"USDC"`, `"BTC"`, `"ETH"`)'},{heading:`get_fip_agreement`,content:`**Returns**`},{heading:`get_fip_agreement`,content:"`{ agreements: [{ product_type, product_code, currency, url, show_name, sort, term_days }] }`. `url` is a PDF download link. Present the agreement document to the user before subscribing."},{heading:`investor_precheck`,content:`Check whether the user has completed required investor agreements and declarations. Read-only.`},{heading:`investor_precheck`,content:`**Parameters**`},{heading:`investor_precheck`,content:`None.`},{heading:`investor_precheck`,content:`**Returns**`},{heading:`investor_precheck`,content:`Field`},{heading:`investor_precheck`,content:`Type`},{heading:`investor_precheck`,content:`Description`},{heading:`investor_precheck`,content:"`Master Brokerage Agreement & Trading Rules`"},{heading:`investor_precheck`,content:`boolean`},{heading:`investor_precheck`,content:`Whether the Master Brokerage Agreement has been signed`},{heading:`investor_precheck`,content:"`investorDeclarationTag`"},{heading:`investor_precheck`,content:`boolean`},{heading:`investor_precheck`,content:`Whether the investor declaration has been completed`},{heading:`investor_precheck`,content:"If either field is `false`, the user must complete that step before subscribing to a FIP product."},{heading:`fip_subscribe`,content:`Subscribe to a MetaComp Wealth Fixed Income Product.`},{heading:`fip_subscribe`,content:"Call `investor_precheck` and present the `get_fip_agreement` document to the user before calling this tool."},{heading:`fip_subscribe`,content:`**Parameters**`},{heading:`fip_subscribe`,content:`Name`},{heading:`fip_subscribe`,content:`Type`},{heading:`fip_subscribe`,content:`Required`},{heading:`fip_subscribe`,content:`Notes`},{heading:`fip_subscribe`,content:"`id`"},{heading:`fip_subscribe`,content:`string`},{heading:`fip_subscribe`,content:`yes`},{heading:`fip_subscribe`,content:"Currency item ID from `get_fip_products` (`currencyItemList[].id`)"},{heading:`fip_subscribe`,content:"`currency`"},{heading:`fip_subscribe`,content:`string`},{heading:`fip_subscribe`,content:`yes`},{heading:`fip_subscribe`,content:'Currency code (e.g. `"USD"`, `"USDT"`, `"USDC"`, `"BTC"`, `"ETH"`)'},{heading:`fip_subscribe`,content:"`termDays`"},{heading:`fip_subscribe`,content:`integer`},{heading:`fip_subscribe`,content:`yes`},{heading:`fip_subscribe`,content:"Term length in days. Use negative values for flexible products (e.g. `-2` for T+1 settlement, `-1` for T+3)"},{heading:`fip_subscribe`,content:"`subscriptionAmount`"},{heading:`fip_subscribe`,content:`number`},{heading:`fip_subscribe`,content:`yes`},{heading:`fip_subscribe`,content:`Subscription amount in the specified currency`},{heading:`fip_subscribe`,content:`**Returns**`},{heading:`fip_subscribe`,content:"`{ success, code, msg, data, currencyConvertInfoList? }`"},{heading:`fip_subscribe`,content:"`data` fields:"},{heading:`fip_subscribe`,content:`Field`},{heading:`fip_subscribe`,content:`Type`},{heading:`fip_subscribe`,content:`Description`},{heading:`fip_subscribe`,content:"`currency`"},{heading:`fip_subscribe`,content:`string`},{heading:`fip_subscribe`,content:`Subscribed currency`},{heading:`fip_subscribe`,content:"`subscriptionAmount`"},{heading:`fip_subscribe`,content:`string`},{heading:`fip_subscribe`,content:`Confirmed subscription amount`},{heading:`fip_subscribe`,content:"`subscriptionDate`"},{heading:`fip_subscribe`,content:`string or null`},{heading:`fip_subscribe`,content:'Subscription date (e.g. `"2026-04-09"`); null if not yet determined'},{heading:`fip_subscribe`,content:"`returnsAccrualStartDate`"},{heading:`fip_subscribe`,content:`string or null`},{heading:`fip_subscribe`,content:`Date returns start accruing; null if not yet determined`},{heading:`fip_subscribe`,content:"`initialRedemptionOpeningDay`"},{heading:`fip_subscribe`,content:`string or null`},{heading:`fip_subscribe`,content:`Earliest redemption date; null if not yet determined`},{heading:`fip_subscribe`,content:"`settlementDate`"},{heading:`fip_subscribe`,content:`string or null`},{heading:`fip_subscribe`,content:`Settlement date; null if not yet determined`}],headings:[{id:`accounts`,content:`Accounts`},{id:`get_account_summary`,content:`get_account_summary`},{id:`get_account_detail`,content:`get_account_detail`},{id:`get_module_permissions`,content:`get_module_permissions`},{id:`get_available_currency_pairs`,content:`get_available_currency_pairs`},{id:`otc-exchange`,content:`OTC Exchange`},{id:`get_exchange_quote`,content:`get_exchange_quote`},{id:`get_otc_quote`,content:`get_otc_quote`},{id:`confirm_otc_trade`,content:`confirm_otc_trade`},{id:`get_otc_trade_detail`,content:`get_otc_trade_detail`},{id:`fiat-deposit`,content:`Fiat Deposit`},{id:`get_fiat_deposit_currencies`,content:`get_fiat_deposit_currencies`},{id:`get_deposit_bank_account`,content:`get_deposit_bank_account`},{id:`get_fiat_deposit_bank_accounts`,content:`get_fiat_deposit_bank_accounts`},{id:`get_third_party_fiat_deposit_estimate`,content:`get_third_party_fiat_deposit_estimate`},{id:`execute_third_party_fiat_deposit_submit`,content:`execute_third_party_fiat_deposit_submit`},{id:`get_named_account_currencies`,content:`get_named_account_currencies`},{id:`get_named_account_list`,content:`get_named_account_list`},{id:`crypto-deposit`,content:`Crypto Deposit`},{id:`get_crypto_deposit_currencies`,content:`get_crypto_deposit_currencies`},{id:`get_crypto_deposit_networks`,content:`get_crypto_deposit_networks`},{id:`get_crypto_wallet_addresses`,content:`get_crypto_wallet_addresses`},{id:`get_third_party_crypto_deposit_estimate`,content:`get_third_party_crypto_deposit_estimate`}
1,{id:`withdrawal`,content:`Withdrawal`},{id:`get_withdrawal_currencies`,content:`get_withdrawal_currencies`},{id:`get_withdrawal_quote`,content:`get_withdrawal_quote`},{id:`get_fiat_withdrawal_bank_accounts`,content:`get_fiat_withdrawal_bank_accounts`},{id:`execute_fiat_withdrawal`,content:`execute_fiat_withdrawal`},{id:`get_crypto_withdrawal_wallets`,content:`get_crypto_withdrawal_wallets`},{id:`execute_crypto_withdrawal`,content:`execute_crypto_withdrawal`},{id:`upload_file`,content:`upload_file`},{id:`history`,content:`History`},{id:`get_deposit_list`,content:`get_deposit_list`},{id:`get_withdrawal_list`,content:`get_withdrawal_list`},{id:`fixed-income`,content:`Fixed Income`},{id:`get_fip_products`,content:`get_fip_products`},{id:`get_fip_agreement`,content:`get_fip_agreement`},{id:`investor_precheck`,content:`investor_precheck`},{id:`fip_subscribe`,content:`fip_subscribe`}]},s=[{depth:2,url:`#accounts`,title:(0,i.jsx)(i.Fragment,{children:`Accounts`})},{depth:3,url:`#get_account_summary`,title:(0,i.jsx)(i.Fragment,{children:`get_account_summary`})},{depth:3,url:`#get_account_detail`,title:(0,i.jsx)(i.Fragment,{children:`get_account_detail`})},{depth:3,url:`#get_module_permissions`,title:(0,i.jsx)(i.Fragment,{children:`get_module_permissions`})},{depth:3,url:`#get_available_currency_pairs`,title:(0,i.jsx)(i.Fragment,{children:`get_available_currency_pairs`})},{depth:2,url:`#otc-exchange`,title:(0,i.jsx)(i.Fragment,{children:`OTC Exchange`})},{depth:3,url:`#get_exchange_quote`,title:(0,i.jsx)(i.Fragment,{children:`get_exchange_quote`})},{depth:3,url:`#get_otc_quote`,title:(0,i.jsx)(i.Fragment,{children:`get_otc_quote`})},{depth:3,url:`#confirm_otc_trade`,title:(0,i.jsx)(i.Fragment,{children:`confirm_otc_trade`})},{depth:3,url:`#get_otc_trade_detail`,title:(0,i.jsx)(i.Fragment,{children:`get_otc_trade_detail`})},{depth:2,url:`#fiat-deposit`,title:(0,i.jsx)(i.Fragment,{children:`Fiat Deposit`})},{depth:3,url:`#get_fiat_deposit_currencies`,title:(0,i.jsx)(i.Fragment,{children:`get_fiat_deposit_currencies`})},{depth:3,url:`#get_deposit_bank_account`,title:(0,i.jsx)(i.Fragment,{children:`get_deposit_bank_account`})},{depth:3,url:`#get_fiat_deposit_bank_accounts`,title:(0,i.jsx)(i.Fragment,{children:`get_fiat_deposit_bank_accounts`})},{depth:3,url:`#get_third_party_fiat_deposit_estimate`,title:(0,i.jsx)(i.Fragment,{children:`get_third_party_fiat_deposit_estimate`})},{depth:3,url:`#execute_third_party_fiat_deposit_submit`,title:(0,i.jsx)(i.Fragment,{children:`execute_third_party_fiat_deposit_submit`})},{depth:3,url:`#get_named_account_currencies`,title:(0,i.jsx)(i.Fragment,{children:`get_named_account_currencies`})},{depth:3,url:`#get_named_account_list`,title:(0,i.jsx)(i.Fragment,{children:`get_named_account_list`})},{depth:2,url:`#crypto-deposit`,title:(0,i.jsx)(i.Fragment,{children:`Crypto Deposit`})},{depth:3,url:`#get_crypto_deposit_currencies`,title:(0,i.jsx)(i.Fragment,{children:`get_crypto_deposit_currencies`})},{depth:3,url:`#get_crypto_deposit_networks`,title:(0,i.jsx)(i.Fragment,{children:`get_crypto_deposit_networks`})},{depth:3,url:`#get_crypto_wallet_addresses`,title:(0,i.jsx)(i.Fragment,{children:`get_crypto_wallet_addresses`})},{depth:3,url:`#get_third_party_crypto_deposit_estimate`,title:(0,i.jsx)(i.Fragment,{children:`get_third_party_crypto_deposit_estimate`})},{depth:2,url:`#withdrawal`,title:(0,i.jsx)(i.Fragment,{children:`Withdrawal`})},{depth:3,url:`#get_withdrawal_currencies`,title:(0,i.jsx)(i.Fragment,{children:`get_withdrawal_currencies`})},{depth:3,url:`#get_withdrawal_quote`,title:(0,i.jsx)(i.Fragment,{children:`get_withdrawal_quote`})},{depth:3,url:`#get_fiat_withdrawal_bank_accounts`,title:(0,i.jsx)(i.Fragment,{children:`get_fiat_withdrawal_bank_accounts`})},{depth:3,url:`#execute_fiat_withdrawal`,title:(0,i.jsx)(i.Fragment,{children:`execute_fiat_withdrawal`})},{depth:3,url:`#get_crypto_withdrawal_wallets`,title:(0,i.jsx)(i.Fragment,{children:`get_crypto_withdrawal_wallets`})},{depth:3,url:`#execute_crypto_withdrawal`,title:(0,i.jsx)(i.Fragment,{children:`execute_crypto_withdrawal`})},{depth:3,url:`#upload_file`,title:(0,i.jsx)(i.Fragment,{children:`upload_file`})},{depth:2,url:`#history`,title:(0,i.jsx)(i.Fragment,{children:`History`})},{depth:3,url:`#get_deposit_list`,title:(0,i.jsx)(i.Fragment,{children:`get_deposit_list`})},{depth:3,url:`#get_withdrawal_list`,title:(0,i.jsx)(i.Fragment,{children:`get_withdrawal_list`})},{depth:2,url:`#fixed-income`,title:(0,i.jsx)(i.Fragment,{children:`Fixed Income`})},{depth:3,url:`#get_fip_products`,title:(0,i.jsx)(i.Fragment,{children:`get_fip_products`})},{depth:3,url:`#get_fip_agreement`,title:(0,i.jsx)(i.Fragment,{children:`get_fip_agreement`})},{depth:3,url:`#investor_precheck`,title:(0,i.jsx)(i.Fragment,{children:`investor_precheck`})},{depth:3,url:`#fip_subscribe`,title:(0,i.jsx)(i.Fragment,{children:`fip_subscribe`})}];function c(e){let t={a:`a`,code:`code`,h2:`h2`,h3:`h3`,hr:`hr`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,...e.components},{Callout:n}=t;return n||u(`Callout`,!0),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:[`All tools are available via the MetaComp MCP server at `,(0,i.jsx)(t.code,{children:`https://www.metacomp.ai/mcp`}),`. Check `,(0,i.jsx)(t.a,{href:`/developers/financial-services/accounts#get_module_permissions`,children:`module permissions`}),` before calling any module-specific tool. Cross-cutting concepts (minor units, `,(0,i.jsx)(t.code,{children:`withdrawalParty`}),`, `,(0,i.jsx)(t.code,{children:`currencyType`}),`, fee enums, verification codes) are defined in `,(0,i.jsx)(t.a,{href:`/developers/financial-services/concepts`,children:`Concepts`}),`.`]}),`
2`,(0,i.jsx)(t.hr,{}),`
3`,(0,i.jsx)(t.h2,{id:`accounts`,children:`Accounts`}),`
4`,(0,i.jsx)(t.h3,{id:`get_account_summary`,children:`get_account_summary`}),`
5`,(0,i.jsx)(t.p,{children:`Get a USD-equivalent balance summary across all product account categories. Read-only.`}),`
6`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
7`,(0,i.jsx)(t.p,{children:`None.`}),`
8`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
9`,(0,i.jsxs)(t.p,{children:[`An object with keys `,(0,i.jsx)(t.code,{children:`fiat`}),`, `,(0,i.jsx)(t.code,{children:`crypto`}),`, `,(0,i.jsx)(t.code,{children:`investment_fiat`}),`, `,(0,i.jsx)(t.code,{children:`quarantine_portfolio`}),`, `,(0,i.jsx)(t.code,{children:`investment_product`}),`. Each key maps to `,(0,i.jsx)(t.code,{children:`{ availableAmou
9nt, pendingAmount, totalAmount }`}),` — all high-precision USD decimal strings.`]}),`
10`,(0,i.jsx)(t.hr,{}),`
11`,(0,i.jsx)(t.h3,{id:`get_account_detail`,children:`get_account_detail`}),`
12`,(0,i.jsx)(t.p,{children:`Fetch per-currency breakdown for a specific product account. Read-only.`}),`
13`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
14`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`Name`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`productCode`})}),(0,i.jsx)(t.td,{children:`string (enum)`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`fiat`}),` | `,(0,i.jsx)(t.code,{children:`crypto`}),` | `,(0,i.jsx)(t.code,{children:`investment_fiat`}),` | `,(0,i.jsx)(t.code,{children:`quarantine_portfolio`}),` | `,(0,i.jsx)(t.code,{children:`investment_product`}),` | `,(0,i.jsx)(t.code,{children:`named_account`})]})]})})]}),`
15`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
16`,(0,i.jsxs)(t.p,{children:[`On success: `,(0,i.jsx)(t.code,{children:`{ data: { holderCode, productCode, availableAmount, pendingAmount, totalAmount, instrumentInfoMap } }`}),`. `,(0,i.jsx)(t.code,{children:`instrumentInfoMap`}),` is keyed by currency code; each entry has `,(0,i.jsx)(t.code,{children:`availableAmount`}),`, `,(0,i.jsx)(t.code,{children:`availableAmountDisplay`}),`, `,(0,i.jsx)(t.code,{children:`pendingAmount`}),`, `,(0,i.jsx)(t.code,{children:`pendingCreditAmount`}),`. On session expiry: `,(0,i.jsx)(t.code,{children:`{ error: true, message, authUrl? }`}),`. See `,(0,i.jsx)(t.a,{href:`/developers/financial-services/accounts#get_account_detail`,children:`Accounts & Balances`}),`.`]}),`
17`,(0,i.jsx)(t.hr,{}),`
18`,(0,i.jsx)(t.h3,{id:`get_module_permissions`,children:`get_module_permissions`}),`
19`,(0,i.jsx)(t.p,{children:`Check which financial modules the authenticated user can access. Read-only.`}),`
20`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
21`,(0,i.jsx)(t.p,{children:`None.`}),`
22`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
23`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.code,{children:`{ permissions: [{ module: 'deposit'|'otc'|'withdrawal'|'wealth', hasPermission: boolean }] }`})}),`
24`,(0,i.jsx)(t.hr,{}),`
25`,(0,i.jsx)(t.h3,{id:`get_available_currency_pairs`,children:`get_available_currency_pairs`}),`
26`,(0,i.jsx)(t.p,{children:`List all currency pairs available for OTC exchange. Read-only.`}),`
27`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
28`,(0,i.jsx)(t.p,{children:`None.`}),`
29`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
30`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ pairs: string[] }`}),` — each element is a tradeable pair in `,(0,i.jsx)(t.code,{children:`BASE/QUOTE`}),` format (e.g. `,(0,i.jsx)(t.code,{children:`"USD/USDC"`}),`, `,(0,i.jsx)(t.code,{children:`"GBP/USDT"`}),`).`]}),`
31`,(0,i.jsx)(t.hr,{}),`
32`,(0,i.jsx)(t.h2,{id:`otc-exchange`,children:`OTC Exchange`}),`
33`,(0,i.jsxs)(t.p,{children:[`Requires `,(0,i.jsx)(t.code,{children:`otc`}),` module permission. The OTC flow is two steps: `,(0,i.jsx)(t.code,{children:`get_otc_quote`}),` → `,(0,i.jsx)(t.code,{children:`confirm_otc_trade`}),`. For error handling (HTTP 410 / 409), see `,(0,i.jsx)(t.a,{href:`/developers/financial-services/responses#otc-two-step-error-model`,children:`Response Reference`}),`.`]}),`
34`,(0,i.jsx)(t.h3,{id:`get_exchange_quote`,children:`get_exchange_quote`}),`
35`,(0,i.jsx)(t.p,{children:`Fetch the current from→to exchange rate without locking a quote or checking balance. Use for browsing rates or pre-lock math. Read-only.`}),`
36`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
37`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
37ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`fromCurrency`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`Source currency code (e.g. `,(0,i.jsx)(t.code,{children:`"USD"`}),`, `,(0,i.jsx)(t.code,{children:`"USDT"`}),`, `,(0,i.jsx)(t.code,{children:`"SGD"`}),`)`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`toCurrency`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`Target currency code (e.g. `,(0,i.jsx)(t.code,{children:`"USDT"`}),`, `,(0,i.jsx)(t.code,{children:`"BTC"`}),`, `,(0,i.jsx)(t.code,{children:`"EUR"`}),`)`]})]})]})]}),`
38`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
39`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ rate: string }`}),` — the decimal from→to exchange rate. Multiply `,(0,i.jsx)(t.code,{children:`fromCurrency`}),` amount by `,(0,i.jsx)(t.code,{children:`rate`}),` to get the `,(0,i.jsx)(t.code,{children:`toCurrency`}),` amount. Does not lock a quote or reserve balance.`]}),`
40`,(0,i.jsx)(t.hr,{}),`
41`,(0,i.jsx)(t.h3,{id:`get_otc_quote`,children:`get_otc_quote`}),`
42`,(0,i.jsx)(t.p,{children:`Step 1 of OTC exchange. Locks a quote at a specific amount and performs a backend balance and limit check. Read-only.`}),`
43`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
44`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
44ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`fromCurrency`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`Source currency code (e.g. `,(0,i.jsx)(t.code,{children:`"USD"`}),`, `,(0,i.jsx)(t.code,{children:`"USDT"`}),`)`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`toCurrency`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`Target currency code (e.g. `,(0,i.jsx)(t.code,{children:`"USDT"`}),`, `,(0,i.jsx)(t.code,{children:`"BTC"`}),`)`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`totalValue`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`Amount to exchange in source currency (e.g. `,(0,i.jsx)(t.code,{children:`"1000"`}),`, `,(0,i.jsx)(t.code,{children:`"500.50"`}),`)`]})]})]})]}),`
45`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
46`,(0,i.jsxs)(t.p,{children:[`On success: `,(0,i.jsx)(t.code,{children:`{ quoteCode, exchangeRate, finalAmount, validityPeriod, fromCurrency, toCurrency, totalValue, expiry }`}),`. On failure: `,(0,i.jsx)(t.code,{children:`{ success: false, message }`}),`.`]}),`
47`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`Field`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Description`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`quoteCode`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsxs)(t.td,{children:[`Pass unchanged to `,(0,i.jsx)(t.code,{children:`confirm_otc_trade`})]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`exchangeRate`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsxs)(t.td,{children:[`Locked from→to rate. May be `,(0,i.jsx)(t.code,{children:`""`}),` when pricing is unavailable — do `,(0,i.jsx)(t.strong,{children:`not`}),` proceed to confirm in that case`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`finalAmount`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsxs)(t.td,{children:[`Estimated receive amount in `,(0,i.jsx)(t.code,{children:`toCurrency`}),`. May be `,(0,i.jsx)(t.code,{children:`""`}),` when pricing is unavailable`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`validityPeriod`})}),(0,i.jsx)(t.td,{children:`number`}),(0,i.jsx)(t.td,{children:`Seconds the user has to confirm (UX hint; the server keeps context for 5 minutes)`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`expiry`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Absolute expiry timestamp (ISO 8601 UTC)`})]})]})]}),`
48`,(0,i.jsxs)(t.p,{children:[`Always display `,(0,i.jsx)(t.code,{children:`exchangeRate`}),` and `,(0,i.jsx)(t.code,{children:`finalAmount`}),` to the user before calling `,(0,i.jsx)(t.code,{children:`confirm_otc_trade`}),`.`]}),`
49`,(0,i.jsx)(t.hr,{}),`
50`,(0,i.jsx)(t.h3,{id:`confirm_otc_trade`,children:`confirm_otc_trade`}),`
51`,(0,i.jsx)(t.p,{children:`Step 2 of OTC exchange. Executes the trade at the live rate.`}),`
52`,(0,i.jsx)(n,{type:`warn`,children:`Destructive — requires explicit user confirmation before calling.`}),`
53`,(0,i.jsxs)(t.p,{children:[`The server re-fetches a fresh rate at confirm time; the executed `,(0,i.jsx)(t.code,{children:`exchangeRate`}),` and `,(0,i.jsx)(t.code,{children:`finalAmount`}),` in this response are the final settled values and may differ from the `,(0,i.jsx)(t.code,{children:`get_otc_quote`}),` values. Failures are HTTP errors: `,(0,i.jsx)(t.code,{children:`410`}),` = quote context expired; `,(0,i.jsx)(t.code,{children:`409`}),` = rate drift exceeded. On either error, do not auto-retry — call `,(0,i.jsx)(t.code,{children:`get_otc_quote`}),` again.`]}),`
54`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
55`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
55ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`quoteCode`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`quoteCode`}),` returned by `,(0,i.jsx)(t.code,{children:`get_otc_quote`})]})]})})]}),`
56`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
57`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.code,{children:`{ id, tradeCode, point, exchangeRate?, finalAmount? }`})}),`
58`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`Field`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Description`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`id`})}),(0,i.jsx)(t.td,{children:`number`}),(0,i.jsx)(t.td,{children:`Internal trade record ID`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`tradeCode`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Transaction reference code — show as the trade identifier`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`point`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Loyalty/reward points earned (decimal string)`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`exchangeRate`})}),(0,i.jsx)(t.td,{children:`string (optional)`}),(0,i.jsx)(t.td,{children:`Actual executed exchange rate`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`finalAmount`})}),(0,i.jsx)(t.td,{children:`string (optional)`}),(0,i.jsxs)(t.td,{children:[`Actual amount received in `,(0,i.jsx)(t.code,{children:`toCurrency`})]})]})]})]}),`
59`,(0,i.jsx)(t.hr,{}),`
60`,(0,i.jsx)(t.h3,{id:`get_otc_trade_detail`,children:`get_otc_trade_detail`}),`
61`,(0,i.jsxs)(t.p,{children:[`Look up the full detail of a settled or pending OTC trade by its `,(0,i.jsx)(t.code,{children:`tradeCode`}),`. Read-only.`]}),`
62`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
63`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
63ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`tradeCode`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`OTC trade code (e.g. the code returned by `,(0,i.jsx)(t.code,{children:`confirm_otc_trade`}),`)`]})]})})]}),`
64`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
65`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ trade: object | null }`}),` — `,(0,i.jsx)(t.code,{children:`null`}),` when no trade matches the code.`]}),`
66`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`trade`}),` fields:`]}),`
67`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`Field`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Description`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`tradeCode`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Unique OTC trade code`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`tradeStatus`})}),(0,i.jsx)(t.td,{children:`number`}),(0,i.jsxs)(t.td,{children:[`Status code (e.g. `,(0,i.jsx)(t.code,{children:`1`}),` = pending, `,(0,i.jsx)(t.code,{children:`4`}),` = settled)`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`tradingAction`})}),(0,i.jsx)(t.td,{children:`number`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`1`}),` = buy base, `,(0,i.jsx)(t.code,{children:`2`}),` = sell base`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`buyerCode`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Buyer participant code`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`buyerName`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Buyer display name`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`sellerCode`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Seller participant code`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`sellerName`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Seller display name`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`baseCurrency`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Base currency code`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`quoteCurrency`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Quote currency code`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`baseQuantity`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Quantity of base currency`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`quoteAmount`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Amount of quote currency exchanged`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`quotePrice`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Quoted rate before adjustments`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`finalPrice`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Final locked exchange rate`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`tradeTime`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Trade creation timestamp (ISO 8601)`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`settleTime`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Scheduled settlement timestamp (ISO 8601)`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`updatedTime`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Last status update timestamp (ISO 8601)`})]})]})]}),`
68`,(0,i.jsx)(t.hr,{}),`
69`,(0,i.jsx)(t.h2,{id:`fiat-deposit`,children:`Fiat Deposit`}),`
70`,(0,i.jsxs)(t.p,{children:[`Requires `,(0,i.jsx)(t.code,{children:`deposit`}),` module permission.`]}),`
71`,(0,i.jsx)(t.h3,{id:`get_fiat_deposit_currencies`,children:`get_fiat_deposit_currencies`}),`
72`,(0,i.jsx)(t.p,{children:`List fiat currencies available for deposit. Read-only.`}),`
73`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
74`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
74ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`withdrawalParty`})}),(0,i.jsx)(t.td,{children:`string (enum)`}),(0,i.jsx)(t.td,{children:`no`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`'first_party'`}),` or `,(0,i.jsx)(t.code,{children:`'third_party'`}),`. Defaults to first-party`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`isSameNameAccount`})}),(0,i.jsx)(t.td,{children:`boolean`}),(0,i.jsx)(t.td,{children:`no`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`true`}),` for named-account (same-name) deposit flow`]})]})]})]}),`
75`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
76`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ currencies: string[] }`}),` — available fiat currency codes (e.g. `,(0,i.jsx)(t.code,{children:`"USD"`}),`, `,(0,i.jsx)(t.code,{children:`"EUR"`}),`, `,(0,i.jsx)(t.code,{children:`"GBP"`}),`).`]}),`
77`,(0,i.jsx)(t.hr,{}),`
78`,(0,i.jsx)(t.h3,{id:`get_deposit_bank_account`,children:`get_deposit_bank_account`}),`
79`,(0,i.jsx)(t.p,{children:`Get MetaComp's bank account details for a given currency (where to wire funds). Read-only.`}),`
80`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
81`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
81ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`currency`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`Fiat currency code (e.g. `,(0,i.jsx)(t.code,{children:`"USD"`}),`, `,(0,i.jsx)(t.code,{children:`"EUR"`}),`, `,(0,i.jsx)(t.code,{children:`"GBP"`}),`)`]})]})})]}),`
82`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
83`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ accounts: [{ ownerName, ownerAddress, ownerCountryCode, baNumber, swiftCode, bankName, bankAddress, countryCode }] }`}),` — MetaComp's receiving bank account details.`]}),`
84`,(0,i.jsx)(t.hr,{}),`
85`,(0,i.jsx)(t.h3,{id:`get_fiat_deposit_bank_accounts`,children:`get_fiat_deposit_bank_accounts`}),`
86`,(0,i.jsx)(t.p,{children:`List payor bank accounts available for fiat deposit. Read-only.`}),`
87`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
88`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
88ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`withdrawalParty`})}),(0,i.jsx)(t.td,{children:`string (enum)`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`'first_party'`}),` or `,(0,i.jsx)(t.code,{children:`'third_party'`})]})]})})]}),`
89`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
90`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ accounts: [{ baNumber, ownerName, ownerAddress?, ownerCountryCode?, swiftCode?, bankName?, bankAddress?, countryCode?, ownerType?, relationship?, ownerCorporateCountryCode?, baTag?, relationType? }] }`}),` — payor bank accounts (own accounts for first-party; registered COBO payors for third-party).`]}),`
91`,(0,i.jsx)(t.hr,{}),`
92`,(0,i.jsx)(t.h3,{id:`get_third_party_fiat_deposit_estimate`,children:`get_third_party_fiat_deposit_estimate`}),`
93`,(0,i.jsx)(t.p,{children:`Estimate a third-party (COBO) fiat deposit — fee calculation and bank account details. Read-only.`}),`
94`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
95`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
95ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`currency`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`Fiat currency code (e.g. `,(0,i.jsx)(t.code,{children:`"USD"`}),`)`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`amount`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsx)(t.td,{children:`Deposit amount as positive decimal string`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`feePayer`})}),(0,i.jsx)(t.td,{children:`string (enum)`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`'paid_by_me'`}),` or `,(0,i.jsx)(t.code,{children:`'paid_by_third_party'`})]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`baNumber`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`Payor bank account number — must be from `,(0,i.jsx)(t.code,{children:`get_fiat_deposit_bank_accounts`})]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`isSameNameAccount`})}),(0,i.jsx)(t.td,{children:`boolean`}),(0,i.jsx)(t.td,{children:`no`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`true`}),` for named-account flow`]})]})]})]}),`
96`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
97`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ accountType: 'fiat', depositType, amountSent, estimatedServiceFee, estimatedAmountReceived, payorBankAccount, receiverBankAccount }`}),`. Show fee and amounts to the user for confirmation before calling `,(0,i.jsx)(t.code,{children:`execute_third_party_fiat_deposit_submit`}),`.`]}),`
98`,(0,i.jsx)(t.hr,{}),`
99`,(0,i.jsx)(t.h3,{id:`execute_third_party_fiat_deposit_submit`,children:`execute_third_party_fiat_deposit_submit`}),`
100`,(0,i.jsx)(t.p,{children:`Submit a third-party (COBO) fiat deposit request.`}),`
101`,(0,i.jsx)(n,{type:`warn`,children:`Destructive — requires explicit user confirmation before calling.`}),`
102`,(0,i.jsxs)(t.p,{children:[`Call `,(0,i.jsx)(t.code,{children:`get_third_party_fiat_deposit_estimate`}),` first and confirm fee/amounts with the user before calling this tool.`]}),`
103`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
104`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
104ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`currency`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`Fiat currency code (e.g. `,(0,i.jsx)(t.code,{children:`"USD"`}),`)`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`amount`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsx)(t.td,{children:`Deposit amount as positive decimal string`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`feePayer`})}),(0,i.jsx)(t.td,{children:`string (enum)`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`'paid_by_me'`}),` or `,(0,i.jsx)(t.code,{children:`'paid_by_third_party'`})]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`baNumber`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`Payor bank account number (from `,(0,i.jsx)(t.code,{children:`get_fiat_deposit_bank_accounts`}),`)`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`isSameNameAccount`})}),(0,i.jsx)(t.td,{children:`boolean`}),(0,i.jsx)(t.td,{children:`no`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`true`}),` for named-account flow`]})]})]})]}),`
105`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
106`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ depositNumber: string }`}),` — the deposit requirement number (e.g. `,(0,i.jsx)(t.code,{children:`"DP2026..."`}),`).`]}),`
107`,(0,i.jsx)(t.hr,{}),`
108`,(0,i.jsx)(t.h3,{id:`get_named_account_currencies`,children:`get_named_account_currencies`}),`
109`,(0,i.jsx)(t.p,{children:`List fiat currencies supported for same-name (named) account transfers. Read-only.`}),`
110`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
111`,(0,i.jsx)(t.p,{children:`None.`}),`
112`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
113`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ currencies: string[] }`}),` — currency codes supporting named-account deposits (e.g. `,(0,i.jsx)(t.code,{children:`"SGD"`}),`, `,(0,i.jsx)(t.code,{children:`"EUR"`}),`, `,(0,i.jsx)(t.code,{children:`"USD"`}),`).`]}),`
114`,(0,i.jsx)(t.hr,{}),`
115`,(0,i.jsx)(t.h3,{id:`get_named_account_list`,children:`get_named_account_list`}),`
116`,(0,i.jsx)(t.p,{children:`Get the user's registered same-name (named) bank accounts for first-party fiat transfers. Read-only.`}),`
117`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
118`,(0,i.jsx)(t.p,{children:`None.`}),`
119`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
120`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ accounts: [{ baNumber, ownerName, ownerAddress?, ownerCountryCode?, swiftCode?, bankName?, bankAddress?, countryCode?, ... }] }`}),` — the user's bound same-name bank account details. Call `,(0,i.jsx)(t.code,{children:`get_named_account_currencies`}),` first to confirm the selected currency supports named-account transfers.`]}),`
121`,(0,i.jsx)(t.hr,{}),`
122`,(0,i.jsx)(t.h2,{id:`crypto-deposit`,children:`Crypto Deposit`}),`
123`,(0,i.jsxs)(t.p,{children:[`Requires `,(0,i.jsx)(t.code,{children:`deposit`}),` module permission.`]}),`
124`,(0,i.jsx)(t.h3,{id:`get_crypto_deposit_currencies`,children:`get_crypto_deposit_currencies`}),`
125`,(0,i.jsx)(t.p,{children:`List crypto currencies available for deposit. Read-only.`}),`
126`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
127`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
127ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`withdrawalParty`})}),(0,i.jsx)(t.td,{children:`string (enum)`}),(0,i.jsx)(t.td,{children:`no`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`'first_party'`}),` or `,(0,i.jsx)(t.code,{children:`'third_party'`}),`. Defaults to first-party`]})]})})]}),`
128`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
129`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ currencies: string[] }`}),` — available crypto currency codes (e.g. `,(0,i.jsx)(t.code,{children:`"USDT"`}),`, `,(0,i.jsx)(t.code,{children:`"BTC"`}),`, `,(0,i.jsx)(t.code,{children:`"ETH"`}),`).`]}),`
130`,(0,i.jsx)(t.hr,{}),`
131`,(0,i.jsx)(t.h3,{id:`get_crypto_deposit_networks`,children:`get_crypto_deposit_networks`}),`
132`,(0,i.jsx)(t.p,{children:`Get available blockchain networks for depositing a specific cryptocurrency. Read-only.`}),`
133`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
134`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
134ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`currency`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`Crypto currency code (e.g. `,(0,i.jsx)(t.code,{children:`"USDT"`}),`, `,(0,i.jsx)(t.code,{children:`"BTC"`}),`, `,(0,i.jsx)(t.code,{children:`"ETH"`}),`)`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`withdrawalParty`})}),(0,i.jsx)(t.td,{children:`string (enum)`}),(0,i.jsx)(t.td,{children:`no`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`'first_party'`}),` or `,(0,i.jsx)(t.code,{children:`'third_party'`}),`. Defaults to first-party`]})]})]})]}),`
135`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
136`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ networks: string[] }`}),` — supported blockchain networks (e.g. `,(0,i.jsx)(t.code,{children:`"Ethereum"`}),`, `,(0,i.jsx)(t.code,{children:`"Tron"`}),`, `,(0,i.jsx)(t.code,{children:`"Bitcoin"`}),`).`]}),`
137`,(0,i.jsx)(t.hr,{}),`
138`,(0,i.jsx)(t.h3,{id:`get_crypto_wallet_addresses`,children:`get_crypto_wallet_addresses`}),`
139`,(0,i.jsx)(t.p,{children:`Get the user's crypto deposit wallet addresses for a blockchain network, with QR codes. Read-only.`}),`
140`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
141`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
141ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`network`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`Blockchain network (e.g. `,(0,i.jsx)(t.code,{children:`"Ethereum"`}),`, `,(0,i.jsx)(t.code,{children:`"Tron"`}),`, `,(0,i.jsx)(t.code,{children:`"Bitcoin"`}),`)`]})]})})]}),`
142`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
143`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ addresses: [{ walletAddress, qrCodeDataUrl }] }`}),`. QR codes are also shipped as MCP image content blocks — most clients render them inline. Do not attempt to render the `,(0,i.jsx)(t.code,{children:`data:`}),` URL via markdown `,(0,i.jsx)(t.code,{children:`![]()`}),` in chat UIs.`]}),`
144`,(0,i.jsx)(t.hr,{}),`
145`,(0,i.jsx)(t.h3,{id:`get_third_party_crypto_deposit_estimate`,children:`get_third_party_crypto_deposit_estimate`}),`
146`,(0,i.jsx)(t.p,{children:`Estimate a third-party (COBO) crypto deposit — fee, wallet address, and QR code. Read-only.`}),`
147`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
148`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
148ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`network`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`Blockchain network (e.g. `,(0,i.jsx)(t.code,{children:`"Tron"`}),`, `,(0,i.jsx)(t.code,{children:`"Ethereum"`}),`, `,(0,i.jsx)(t.code,{children:`"Bitcoin"`}),`)`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`currency`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`Crypto currency code (e.g. `,(0,i.jsx)(t.code,{children:`"USDT"`}),`, `,(0,i.jsx)(t.code,{children:`"BTC"`}),`)`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`amount`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsx)(t.td,{children:`Deposit amount as positive decimal string`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`feePayer`})}),(0,i.jsx)(t.td,{children:`string (enum)`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`'paid_by_me'`}),` or `,(0,i.jsx)(t.code,{children:`'paid_by_third_party'`})]})]})]})]}),`
149`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
150`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ accountType: 'crypto', depositType, feePayer, amountSent, estimatedServiceFee, estimatedAmountReceived, walletAddress, qrCodeDataUrl }`}),`.`]}),`
151`,(0,i.jsx)(t.hr,{}),`
152`,(0,i.jsx)(t.h2,{id:`withdrawal`,children:`Withdrawal`}),`
153`,(0,i.jsxs)(t.p,{children:[`Requires `,(0,i.jsx)(t.code,{children:`withdrawal`}),` module permission. Always call `,(0,i.jsx)(t.code,{children:`get_withdrawal_quote`}),` before executing to confirm service fee and minimum amount. For third-party withdrawals, `,(0,i.jsx)(t.code,{children:`purposeOfTransaction`}),` is required on execute calls.`]}),`
154`,(0,i.jsx)(t.h3,{id:`get_withdrawal_currencies`,children:`get_withdrawal_currencies`}),`
155`,(0,i.jsx)(t.p,{children:`List currencies available for withdrawal. Read-only.`}),`
156`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
157`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
157ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`currencyType`})}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`1`}),` or `,(0,i.jsx)(t.code,{children:`2`}),` (integer literal)`]}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`1`}),` = fiat, `,(0,i.jsx)(t.code,{children:`2`}),` = crypto`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`withdrawalParty`})}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`1`}),` or `,(0,i.jsx)(t.code,{children:`2`}),` (integer literal)`]}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`1`}),` = first-party, `,(0,i.jsx)(t.code,{children:`2`}),` = third-party`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`isSameNameAccount`})}),(0,i.jsx)(t.td,{children:`boolean`}),(0,i.jsx)(t.td,{children:`no`}),(0,i.jsxs)(t.td,{children:[`Fiat only; `,(0,i.jsx)(t.code,{children:`true`}),` = same-name account path. Must be omitted or `,(0,i.jsx)(t.code,{children:`false`}),` when `,(0,i.jsx)(t.code,{children:`currencyType = 2`})]})]})]})]}),`
158`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
159`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ currencies: string[] }`}),` — currency codes available for withdrawal.`]}),`
160`,(0,i.jsx)(t.hr,{}),`
161`,(0,i.jsx)(t.h3,{id:`get_withdrawal_quote`,children:`get_withdrawal_quote`}),`
162`,(0,i.jsx)(t.p,{children:`Get the service fee and minimum withdrawal amount in a single call. Read-only.`}),`
163`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
164`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
164ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`withdrawalParty`})}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`1`}),` or `,(0,i.jsx)(t.code,{children:`2`}),` (integer literal)`]}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`1`}),` = first-party, `,(0,i.jsx)(t.code,{children:`2`}),` = third-party`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`currency`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsx)(t.td,{children:`Uppercase alphanumeric currency code`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`amount`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsx)(t.td,{children:`Withdrawal amount as positive decimal string`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`isSameNameAccount`})}),(0,i.jsx)(t.td,{children:`boolean`}),(0,i.jsx)(t.td,{children:`no`}),(0,i.jsx)(t.td,{children:`Fiat only`})]})]})]}),`
165`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
166`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ fee: { serviceFee: string }, minimumAmount: { minimumAmount: number } }`}),`.`]}),`
167`,(0,i.jsx)(t.hr,{}),`
168`,(0,i.jsx)(t.h3,{id:`get_fiat_withdrawal_bank_accounts`,children:`get_fiat_withdrawal_bank_accounts`}),`
169`,(0,i.jsx)(t.p,{children:`List non-same-name fiat withdrawal bank accounts (regular bound accounts). Read-only.`}),`
170`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
171`,(0,i.jsx)(t.p,{children:`None.`}),`
172`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
173`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ accounts: [{ baNumber, ownerName, ownerAddress?, ownerCountryCode?, swiftCode?, bankName?, bankAddress?, countryCode?, ownerType?, ... }] }`}),`. For same-name accounts, use `,(0,i.jsx)(t.code,{children:`get_named_account_list`}),` instead.`]}),`
174`,(0,i.jsx)(t.hr,{}),`
175`,(0,i.jsx)(t.h3,{id:`execute_fiat_withdrawal`,children:`execute_fiat_withdrawal`}),`
176`,(0,i.jsx)(t.p,{children:`Execute a fiat withdrawal.`}),`
177`,(0,i.jsx)(n,{type:`warn`,children:`Destructive — requires explicit user confirmation before calling.`}),`
178`,(0,i.jsxs)(t.p,{children:[`Confirm fee and minimum with `,(0,i.jsx)(t.code,{children:`get_withdrawal_quote`}),` and confirm the destination bank account with the user before calling this tool.`]}),`
179`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
180`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
180ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`withdrawalParty`})}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`1`}),` or `,(0,i.jsx)(t.code,{children:`2`}),` (integer literal)`]}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`1`}),` = first-party, `,(0,i.jsx)(t.code,{children:`2`}),` = third-party`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`currency`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsx)(t.td,{children:`Uppercase alphabetic fiat currency code`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`amount`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsx)(t.td,{children:`Withdrawal amount as positive decimal string`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`bankAccountNumber`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsx)(t.td,{children:`Destination bank account number`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`verificationCode`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsx)(t.td,{children:`One-time verification code from MetaComp authentication`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`chargeType`})}),(0,i.jsx)(t.td,{children:`integer (1–3)`}),(0,i.jsx)(t.td,{children:`no`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`1`}),` = beneficiary bears fee, `,(0,i.jsx)(t.code,{children:`2`}),` = sender bears fee, `,(0,i.jsx)(t.code,{children:`3`}),` = shared`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`isSameNameAccount`})}),(0,i.jsx)(t.td,{children:`boolean`}),(0,i.jsx)(t.td,{children:`no`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`true`}),` for same-name account path (fiat only)`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`purposeOfTransaction`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`conditional`}),(0,i.jsxs)(t.td,{children:[`Required when `,(0,i.jsx)(t.code,{children:`withdrawalParty = 2`}),` (third-party)`]})]})]})]}),`
181`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
182`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ txCode, currency, status, withdrawalAmount?, chargeAmount?, totalChargeAmount?, amountReceived?, to?, network?, createAt?, updateAt? }`}),`. See `,(0,i.jsx)(t.a,{href:`/developers/financial-services/responses#execute-withdrawal-response`,children:`Response Reference`}),`.`]}),`
183`,(0,i.jsx)(t.hr,{}),`
184`,(0,i.jsx)(t.h3,{id:`get_crypto_withdrawal_wallets`,children:`get_crypto_withdrawal_wallets`}),`
185`,(0,i.jsx)(t.p,{children:`Get crypto wallet addresses for withdrawal, filtered by party type. Read-only.`}),`
186`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
187`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
187ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`withdrawalParty`})}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`1`}),` or `,(0,i.jsx)(t.code,{children:`2`}),` (integer literal)`]}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`1`}),` = first-party (own wallets), `,(0,i.jsx)(t.code,{children:`2`}),` = third-party (beneficiary wallets)`]})]})})]}),`
188`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
189`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ wallets: [{ walletAddress, network, walletTag, ownerName }] }`}),`.`]}),`
190`,(0,i.jsx)(t.hr,{}),`
191`,(0,i.jsx)(t.h3,{id:`execute_crypto_withdrawal`,children:`execute_crypto_withdrawal`}),`
192`,(0,i.jsx)(t.p,{children:`Execute a cryptocurrency withdrawal.`}),`
193`,(0,i.jsx)(n,{type:`warn`,children:`Destructive — requires explicit user confirmation before calling. Irreversible once broadcast to the network.`}),`
194`,(0,i.jsxs)(t.p,{children:[`For third-party (`,(0,i.jsx)(t.code,{children:`withdrawalParty = 2`}),`): call `,(0,i.jsx)(t.code,{children:`upload_file`}),` first to obtain a file `,(0,i.jsx)(t.code,{children:`id`}),`, then pass it as `,(0,i.jsx)(t.code,{children:`proof`}),`. Both `,(0,i.jsx)(t.code,{children:`proof`}),` and `,(0,i.jsx)(t.code,{children:`purposeOfTransaction`}),` are required for third-party. Missing either will fail server-side validation.`]}),`
195`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
196`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
196ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`withdrawalParty`})}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`1`}),` or `,(0,i.jsx)(t.code,{children:`2`}),` (integer literal)`]}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`1`}),` = first-party, `,(0,i.jsx)(t.code,{children:`2`}),` = third-party`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`currency`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsx)(t.td,{children:`Uppercase alphanumeric crypto currency code`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`amount`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsx)(t.td,{children:`Withdrawal amount as positive decimal string`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`walletAddress`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsx)(t.td,{children:`Destination wallet address`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`network`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsx)(t.td,{children:`Blockchain network (must be supported for the currency)`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`verificationCode`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsx)(t.td,{children:`One-time verification code from MetaComp authentication`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`proof`})}),(0,i.jsx)(t.td,{children:`integer`}),(0,i.jsx)(t.td,{children:`conditional`}),(0,i.jsxs)(t.td,{children:[`File `,(0,i.jsx)(t.code,{children:`id`}),` from `,(0,i.jsx)(t.code,{children:`upload_file`}),`. Required when `,(0,i.jsx)(t.code,{children:`withdrawalParty = 2`})]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`purposeOfTransaction`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`conditional`}),(0,i.jsxs)(t.td,{children:[`Free-text purpose. Required when `,(0,i.jsx)(t.code,{children:`withdrawalParty = 2`})]})]})]})]}),`
197`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
198`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ txCode, currency, status, withdrawalAmount?, chargeAmount?, totalChargeAmount?, amountReceived?, to?, network?, createAt?, updateAt? }`}),`. See `,(0,i.jsx)(t.a,{href:`/developers/financial-services/responses#execute-withdrawal-response`,children:`Response Reference`}),`.`]}),`
199`,(0,i.jsx)(t.hr,{}),`
200`,(0,i.jsx)(t.h3,{id:`upload_file`,children:`upload_file`}),`
201`,(0,i.jsx)(t.p,{children:`Upload a supporting document as a base64 string.`}),`
202`,(0,i.jsx)(n,{type:`warn`,children:`Destructive — requires explicit user confirmation before calling.`}),`
203`,(0,i.jsxs)(t.p,{children:[`Required before `,(0,i.jsx)(t.code,{children:`execute_crypto_withdrawal`}),` when `,(0,i.jsx)(t.code,{children:`withdrawalParty = 2`}),`. The returned `,(0,i.jsx)(t.code,{children:`id`}),` is passed as `,(0,i.jsx)(t.code,{children:`proof`}),`.`]}),`
204`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
205`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
205ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`fileBase64`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsx)(t.td,{children:`Base64-encoded file content. Max ~7M chars (≈ 5MB binary)`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`originalName`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`Original file name with extension (e.g. `,(0,i.jsx)(t.code,{children:`"invoice.pdf"`}),`). Recorded for audit trail`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`mimeType`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`no`}),(0,i.jsxs)(t.td,{children:[`MIME type (e.g. `,(0,i.jsx)(t.code,{children:`"application/pdf"`}),`, `,(0,i.jsx)(t.code,{children:`"image/png"`}),`). Defaults to `,(0,i.jsx)(t.code,{children:`"application/octet-stream"`})]})]})]})]}),`
206`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
207`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ id: number, physicalName: string }`}),`. Use `,(0,i.jsx)(t.code,{children:`id`}),` as the `,(0,i.jsx)(t.code,{children:`proof`}),` parameter in `,(0,i.jsx)(t.code,{children:`execute_crypto_withdrawal`}),`.`]}),`
208`,(0,i.jsx)(t.hr,{}),`
209`,(0,i.jsx)(t.h2,{id:`history`,children:`History`}),`
210`,(0,i.jsx)(t.h3,{id:`get_deposit_list`,children:`get_deposit_list`}),`
211`,(0,i.jsx)(t.p,{children:`Query paginated deposit transaction records. Read-only.`}),`
212`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
213`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
213ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`pageNum`})}),(0,i.jsx)(t.td,{children:`integer ≥ 1`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsx)(t.td,{children:`Page number, starting from 1`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`pageSize`})}),(0,i.jsx)(t.td,{children:`integer 1–100`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsx)(t.td,{children:`Records per page (max 100)`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`payeeAccountType`})}),(0,i.jsx)(t.td,{children:`number`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`1`}),` = fiat deposits, `,(0,i.jsx)(t.code,{children:`2`}),` = crypto deposits`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`startTime`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`no`}),(0,i.jsxs)(t.td,{children:[`Start of time range: `,(0,i.jsx)(t.code,{children:`"YYYY-MM-DD HH:mm:ss"`})]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`endTime`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`no`}),(0,i.jsxs)(t.td,{children:[`End of time range: `,(0,i.jsx)(t.code,{children:`"YYYY-MM-DD HH:mm:ss"`})]})]})]})]}),`
214`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
215`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ total, list, pageNum, pageSize, pages }`}),`. Each `,(0,i.jsx)(t.code,{children:`list`}),` item: `,(0,i.jsx)(t.code,{children:`{ paymentCode, status, statusDesc, currency, totalAmount, receiveAmount, chargeAmount, detail, createAt, updateAt, payerCode, payerName, payeeCode, payeeName, coboInfo, ... }`}),`.`]}),`
216`,(0,i.jsxs)(t.p,{children:[`Amounts (`,(0,i.jsx)(t.code,{children:`totalAmount`}),`, `,(0,i.jsx)(t.code,{children:`receiveAmount`}),`, `,(0,i.jsx)(t.code,{children:`chargeAmount`}),`) are `,(0,i.jsx)(t.strong,{children:`integers in minor units`}),` — divide by `,(0,i.jsx)(t.code,{children:`10^decimals`}),`. See `,(0,i.jsx)(t.a,{href:`/developers/financial-services/responses#minor-units-in-history-lists`,children:`Response Reference`}),`.`]}),`
217`,(0,i.jsx)(t.hr,{}),`
218`,(0,i.jsx)(t.h3,{id:`get_withdrawal_list`,children:`get_withdrawal_list`}),`
219`,(0,i.jsx)(t.p,{children:`Query paginated withdrawal transaction records. Read-only.`}),`
220`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
221`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
221ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`pageNum`})}),(0,i.jsx)(t.td,{children:`integer ≥ 1`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsx)(t.td,{children:`Page number, starting from 1`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`pageSize`})}),(0,i.jsx)(t.td,{children:`integer 1–100`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsx)(t.td,{children:`Records per page (max 100)`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`payeeAccountType`})}),(0,i.jsx)(t.td,{children:`number`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`1`}),` = fiat withdrawals, `,(0,i.jsx)(t.code,{children:`2`}),` = crypto withdrawals`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`startTime`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`no`}),(0,i.jsxs)(t.td,{children:[`Start of time range: `,(0,i.jsx)(t.code,{children:`"YYYY-MM-DD HH:mm:ss"`})]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`endTime`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`no`}),(0,i.jsxs)(t.td,{children:[`End of time range: `,(0,i.jsx)(t.code,{children:`"YYYY-MM-DD HH:mm:ss"`})]})]})]})]}),`
222`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
223`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ total, list, pageNum, pageSize, pages }`}),`. Each `,(0,i.jsx)(t.code,{children:`list`}),` item: `,(0,i.jsx)(t.code,{children:`{ paymentCode, status, statusDesc, currency, totalAmount, receiveAmount, chargeAmount, paymentType, purposeOfTransaction, pathTo, fee, feeRate, detail, createAt, updateAt, coboInfo, poboInfo, ... }`}),`.`]}),`
224`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`paymentType`}),`: `,(0,i.jsx)(t.code,{children:`21`}),` = first-party, `,(0,i.jsx)(t.code,{children:`22`}),` = third-party. Amounts are `,(0,i.jsx)(t.strong,{children:`integers in minor units`}),` — divide by `,(0,i.jsx)(t.code,{children:`10^decimals`}),`. See `,(0,i.jsx)(t.a,{href:`/developers/financial-services/responses#minor-units-in-history-lists`,children:`Response Reference`}),`.`]}),`
225`,(0,i.jsx)(t.hr,{}),`
226`,(0,i.jsx)(t.h2,{id:`fixed-income`,children:`Fixed Income`}),`
227`,(0,i.jsxs)(t.p,{children:[`Requires `,(0,i.jsx)(t.code,{children:`wealth`}),` module permission. Always call `,(0,i.jsx)(t.code,{children:`investor_precheck`}),` before `,(0,i.jsx)(t.code,{children:`fip_subscribe`}),` to verify required agreements are signed.`]}),`
228`,(0,i.jsx)(t.h3,{id:`get_fip_products`,children:`get_fip_products`}),`
229`,(0,i.jsx)(t.p,{children:`Query available MetaComp Wealth Fixed Income Products. Read-only.`}),`
230`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
231`,(0,i.jsx)(t.p,{children:`None.`}),`
232`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
233`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.code,{children:`{ success, code, msg, data, currencyConvertInfoList? }`})}),`
234`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`data`}),` is an array of products:`]}),`
235`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`Field`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Description`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`productCode`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Internal product code`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`productName`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Display name`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`productType`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsxs)(t.td,{children:[`Category (currently `,(0,i.jsx)(t.code,{children:`FIP`}),`)`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`term`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsxs)(t.td,{children:[`Human-readable term (e.g. `,(0,i.jsx)(t.code,{children:`"Flexible"`}),`, `,(0,i.jsx)(t.code,{children:`"30 Days"`}),`)`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`termType`})}),(0,i.jsx)(t.td,{children:`integer`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`1`}),` = flexible/open term, `,(0,i.jsx)(t.code,{children:`2`}),` = fixed term`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`sort`})}),(0,i.jsx)(t.td,{children:`integer`}),(0,i.jsx)(t.td,{children:`Sort order`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`estApr`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Estimated APR or range (percentage string)`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`currencyItemList`})}),(0,i.jsx)(t.td,{children:`array`}),(0,i.jsx)(t.td,{children:`Supported currency options (see below)`})]})]})]}),`
236`,(0,i.jsxs)(t.p,{children:[`Each `,(0,i.jsx)(t.code,{children:`currencyItemList`}),` entry:`]}),`
237`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`Field`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Description`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`id`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsxs)(t.td,{children:[`Currency item unique identifier — pass to `,(0,i.jsx)(t.code,{children:`fip_subscribe`})]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`currency`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsxs)(t.td,{children:[`Currency code (e.g. `,(0,i.jsx)(t.code,{children:`"USD"`}),`, `,(0,i.jsx)(t.code,{children:`"USDT"`}),`, `,(0,i.jsx)(t.code,{children:`"USDC"`}),`, `,(0,i.jsx)(t.code,{children:`"BTC"`}),`, `,(0,i.jsx)(t.code,{children:`"ETH"`}),`)`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`estApr`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`APR for this currency option`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`term`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Human-readable term`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`termType`})}),(0,i.jsx)(t.td,{children:`integer`}),(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.code,{children:`1`}),` = flexible, `,(0,i.jsx)(t.code,{children:`2`}),` = fixed`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`termDays`})}),(0,i.jsx)(t.td,{children:`integer`}),(0,i.jsx)(t.td,{children:`Term in days; negative values indicate flexible settlement products`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`liquidity`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsxs)(t.td,{children:[`Settlement description (e.g. `,(0,i.jsx)(t.code,{children:`"(T + 1 Settlement)"`}),`)`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`mhp`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Minimum holding period description; empty string if not specified`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`issuer`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Issuer name`})]})]})]}),`
238`,(0,i.jsx)(t.hr,{}),`
239`,(0,i.jsx)(t.h3,{id:`get_fip_agreement`,children:`get_fip_agreement`}),`
240`,(0,i.jsx)(t.p,{children:`Query FIP agreement documents (PDF links) for a specific product and currency. Read-only.`}),`
241`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
242`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
242ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`productType`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`Product category (e.g. `,(0,i.jsx)(t.code,{children:`"FIP"`}),`)`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`productCode`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`Product code (e.g. `,(0,i.jsx)(t.code,{children:`"FIP_OpenTerm_T+1"`}),`, `,(0,i.jsx)(t.code,{children:`"FIP_30Days"`}),`)`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`currency`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`Currency code (e.g. `,(0,i.jsx)(t.code,{children:`"USD"`}),`, `,(0,i.jsx)(t.code,{children:`"USDT"`}),`, `,(0,i.jsx)(t.code,{children:`"USDC"`}),`, `,(0,i.jsx)(t.code,{children:`"BTC"`}),`, `,(0,i.jsx)(t.code,{children:`"ETH"`}),`)`]})]})]})]}),`
243`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
244`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`{ agreements: [{ product_type, product_code, currency, url, show_name, sort, term_days }] }`}),`. `,(0,i.jsx)(t.code,{children:`url`}),` is a PDF download link. Present the agreement document to the user before subscribing.`]}),`
245`,(0,i.jsx)(t.hr,{}),`
246`,(0,i.jsx)(t.h3,{id:`investor_precheck`,children:`investor_precheck`}),`
247`,(0,i.jsx)(t.p,{children:`Check whether the user has completed required investor agreements and declarations. Read-only.`}),`
248`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
249`,(0,i.jsx)(t.p,{children:`None.`}),`
250`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
251`,(0,i.jsx)(i.Fragment,{children:(0,i.jsx)(t.pre,{className:`shiki shiki-themes github-light github-dark`,style:{"--shiki-light":`#24292e`,"--shiki-dark":`#e1e4e8`,"--shiki-light-bg":`#fff`,"--shiki-dark-bg":`#24292e`},tabIndex:`0`,icon:`<svg viewBox="0 0 24 24"><path d="M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z" fill="currentColor" /></svg>`,children:(0,i.jsxs)(t.code,{children:[(0,i.jsx)(t.span,{className:`line`,children:(0,i.jsx)(t.span,{style:{"--shiki-light":`#24292E`,"--shiki-dark":`#E1E4E8`},children:`{`})}),`
252`,(0,i.jsxs)(t.span,{className:`line`,children:[(0,i.jsx)(t.span,{style:{"--shiki-light":`#005CC5`,"--shiki-dark":`#79B8FF`},children:`  "Master Brokerage Agreement & Trading Rules"`}),(0,i.jsx)(t.span,{style:{"--shiki-light":`#24292E`,"--shiki-dark":`#E1E4E8`},children:`: `}),(0,i.jsx)(t.span,{style:{"--shiki-light":`#005CC5`,"--shiki-dark":`#79B8FF`},children:`true`}),(0,i.jsx)(t.span,{style:{"--shiki-light":`#24292E`,"--shiki-dark":`#E1E4E8`},children:`,`})]}),`
253`,(0,i.jsxs)(t.span,{className:`line`,children:[(0,i.jsx)(t.span,{style:{"--shiki-light":`#005CC5`,"--shiki-dark":`#79B8FF`},children:`  "investorDeclarationTag"`}),(0,i.jsx)(t.span,{style:{"--shiki-light":`#24292E`,"--shiki-dark":`#E1E4E8`},children:`: `}),(0,i.jsx)(t.span,{style:{"--shiki-light":`#005CC5`,"--shiki-dark":`#79B8FF`},children:`false`})]}),`
254`,(0,i.jsx)(t.span,{className:`line`,children:(0,i.jsx)(t.span,{style:{"--shiki-light":`#24292E`,"--shiki-dark":`#E1E4E8`},children:`}`})})]})})}),`
255`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`Field`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Description`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`Master Brokerage Agreement & Trading Rules`})}),(0,i.jsx)(t.td,{children:`boolean`}),(0,i.jsx)(t.td,{children:`Whether the Master Brokerage Agreement has been signed`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`investorDeclarationTag`})}),(0,i.jsx)(t.td,{children:`boolean`}),(0,i.jsx)(t.td,{children:`Whether the investor declaration has been completed`})]})]})]}),`
256`,(0,i.jsxs)(t.p,{children:[`If either field is `,(0,i.jsx)(t.code,{children:`false`}),`, the user must complete that step before subscribing to a FIP product.`]}),`
257`,(0,i.jsx)(t.hr,{}),`
258`,(0,i.jsx)(t.h3,{id:`fip_subscribe`,children:`fip_subscribe`}),`
259`,(0,i.jsx)(t.p,{children:`Subscribe to a MetaComp Wealth Fixed Income Product.`}),`
260`,(0,i.jsx)(n,{type:`warn`,children:`Destructive — requires explicit user confirmation before calling.`}),`
261`,(0,i.jsxs)(t.p,{children:[`Call `,(0,i.jsx)(t.code,{children:`investor_precheck`}),` and present the `,(0,i.jsx)(t.code,{children:`get_fip_agreement`}),` document to the user before calling this tool.`]}),`
262`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Parameters`})}),`
263`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`N
263ame`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Required`}),(0,i.jsx)(t.th,{children:`Notes`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`id`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`Currency item ID from `,(0,i.jsx)(t.code,{children:`get_fip_products`}),` (`,(0,i.jsx)(t.code,{children:`currencyItemList[].id`}),`)`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`currency`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`Currency code (e.g. `,(0,i.jsx)(t.code,{children:`"USD"`}),`, `,(0,i.jsx)(t.code,{children:`"USDT"`}),`, `,(0,i.jsx)(t.code,{children:`"USDC"`}),`, `,(0,i.jsx)(t.code,{children:`"BTC"`}),`, `,(0,i.jsx)(t.code,{children:`"ETH"`}),`)`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`termDays`})}),(0,i.jsx)(t.td,{children:`integer`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsxs)(t.td,{children:[`Term length in days. Use negative values for flexible products (e.g. `,(0,i.jsx)(t.code,{children:`-2`}),` for T+1 settlement, `,(0,i.jsx)(t.code,{children:`-1`}),` for T+3)`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`subscriptionAmount`})}),(0,i.jsx)(t.td,{children:`number`}),(0,i.jsx)(t.td,{children:`yes`}),(0,i.jsx)(t.td,{children:`Subscription amount in the specified currency`})]})]})]}),`
264`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:`Returns`})}),`
265`,(0,i.jsx)(t.p,{children:(0,i.jsx)(t.code,{children:`{ success, code, msg, data, currencyConvertInfoList? }`})}),`
266`,(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:`data`}),` fields:`]}),`
267`,(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:`Field`}),(0,i.jsx)(t.th,{children:`Type`}),(0,i.jsx)(t.th,{children:`Description`})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`currency`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Subscribed currency`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`subscriptionAmount`})}),(0,i.jsx)(t.td,{children:`string`}),(0,i.jsx)(t.td,{children:`Confirmed subscription amount`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`subscriptionDate`})}),(0,i.jsx)(t.td,{children:`string or null`}),(0,i.jsxs)(t.td,{children:[`Subscription date (e.g. `,(0,i.jsx)(t.code,{children:`"2026-04-09"`}),`); null if not yet determined`]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`returnsAccrualStartDate`})}),(0,i.jsx)(t.td,{children:`string or null`}),(0,i.jsx)(t.td,{children:`Date returns start accruing; null if not yet determined`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`initialRedemptionOpeningDay`})}),(0,i.jsx)(t.td,{children:`string or null`}),(0,i.jsx)(t.td,{children:`Earliest redemption date; null if not yet determined`})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:`settlementDate`})}),(0,i.jsx)(t.td,{children:`string or null`}),(0,i.jsx)(t.td,{children:`Settlement date; null if not yet determined`})]})]})]})]})}function l(e={}){let{wrapper:t}=e.components||{};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}function u(e,t){throw Error(`Expected `+(t?`component`:`object`)+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}export{r as a,s as i,a as n,o as r,l as t};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.