Stables

money.stables由 stables.money 發布官方發布者v2.6.11更新於 Oct 30, 2026

Stablecoin payments for AI agents: customers, quotes, transfers, payment routes.

已驗證Streamable HTTP可網頁執行金融商業與電商

概覽

AI 產生的概覽

Stables 將 Stables 穩定幣支付 API 開放給 AI 助理,可管理客戶、報價、轉帳、收款路由與餘額。

可以做什麼
  • 建立、查詢與更新客戶、KYC 驗證連結、中繼資料與權限項目
  • 取得匯率報價並查詢報價狀態,支援穩定幣與法幣雙向兌換
  • 驗證收款資訊,建立與追蹤轉帳,管理已儲存的收款人
  • 建立與管理虛擬帳戶、澳幣路由白名單、PayID 與出款錢包地址
  • 查詢組織餘額、入金錢包、餘額流水與待入帳入金
  • 管理 API 金鑰與 webhook 訂閱,並檢視 webhook 投遞紀錄
適用情境
適合讓助理協助處理穩定幣支付營運:客戶進件、報價與準備付款、建立入金路由,或核對轉帳與 webhook 事件。建議先以沙箱金鑰試用流程,再接觸正式環境。
執行需求
可使用遠端端點,或在本地以 Node.js 執行 npm 套件 stables-mcp-server。必須驗證:透過 STABLES_API_KEY 提供 Stables API 金鑰(或作為 bearer token),或以 Stables 後台帳號進行 OAuth 登入。選用的 STABLES_API_URL 可覆寫 API 位址,且必須為 HTTPS。需要能連線至 Stables API 的網路。
安裝前請注意
這是金融基礎設施:正式金鑰會動用真實資金,create_transfer 使用 prefund_balance 會扣減組織餘額。README 建議在轉帳等資金操作前取得人工明確核准。工具可建立客戶、收款人、虛擬帳戶、API 金鑰與 webhook,也可撤銷金鑰或刪除 webhook,且無法復原。新建 API 金鑰的金鑰值僅顯示一次。OAuth 連線會在組織中建立一組可在後台撤銷的 API 金鑰。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Stables,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/money.stables%2Fmcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "stables": {
      "type": "http",
      "url": "https://mcp.stables.money/mcp"
    }
  }
}

README

Stables MCP Server

An MCP (Model Context Protocol) server that exposes the Stables fiat-to-crypto API to AI agents. This allows AI assistants like Claude, ChatGPT, Cursor, Codex, and other MCP-compatible clients to manage customers, create USDC and USDT quotes, execute approved transfers, and handle virtual accounts programmatically.

Use it to build stablecoin payment workflows for AI agents and agentic commerce: payouts, virtual account deposits, treasury movement, fiat off-ramping, and webhook reconciliation.

What is MCP?

MCP (Model Context Protocol) is an open standard that provides a standardized way to connect AI applications to external tools and data sources. Think of it like a "USB-C port for AI" - any AI that supports MCP can use any MCP server.

Features

This MCP server provides 55 tools across 12 categories, one for every operation documented on docs.stables.money(a contract test checks this, see below):

Customer Management

  • create_customer - Create individual or business customers
  • create_customer_onboarding_link - Create a customer and a hosted verification link in one call
  • get_customer - Get customer details and verification status
  • list_customers - List all customers
  • get_verification_link - Generate KYC verification links
  • update_customer - Update customer details and entitlements
  • update_customer_metadata - Update customer metadata key-value pairs

Entitlements

  • list_available_entitlements - Products and rails a customer can still apply for
  • request_entitlements - Apply for entitlements (e.g. aed_local) for an existing customer
  • submit_entitlement_requirements - Send the extra verification Stables asks for

Compliance requests (RFIs)

  • list_rfis - The organisation's RFIs: what compliance needs before it releases a held payment or verification
  • list_customer_rfis - One customer's RFIs
  • get_rfi - One RFI, its requirements and how to answer each
  • get_rfi_evidence_form - The form an evidence requirement asks for
  • submit_rfi_evidence - Send the answers and documents for an evidence requirement
  • get_kyc_capabilities - Verification capabilities a customer holds

Documents

  • add_document - Attach an invoice, contract or other document to a transfer or a deposit
  • list_documents - Documents on a transfer or a deposit
  • get_document_download_url - Short-lived download link for a document
  • delete_document - Remove a document

Quotes

  • create_quote - Get exchange rate quotes (USDC/USDT to fiat)
  • get_quote - Check quote status and details

Transfers

  • validate_payment_method - Check payout details against a corridor's rules before transferring
  • create_transfer - Execute a transfer using an active quote, paid by deposit or from your balance
  • get_transfer - Check transfer status
  • list_transfers - List transfers with filters

Saved Beneficiaries

  • list_beneficiaries - Saved recipients and bank accounts, to pay by id with create_transfer
  • get_beneficiary - One beneficiary's details and whether it still passes today's payout rules
  • create_beneficiary - Save a recipient and bank account (validated like a transfer)
  • archive_beneficiary - Archive a beneficiary so it can no longer be paid

Virtual Accounts

  • create_virtual_account - Create virtual bank accounts for fiat deposits
  • list_virtual_accounts - List virtual accounts for a customer, or across all customers
  • update_virtual_account - Update virtual account settings
  • register_route_payid - Register a PayID on an AUD payment route
  • get_virtual_account_history - Get deposits and their payouts for a payment route
  • update_route_destination - Change the payout wallet on an existing route
  • list_route_whitelist / add_route_whitelist_account / update_route_whitelist_account - Source-account whitelisting for AUD routes

Balances

  • get_balance - Your organisation's balance per asset and network
  • get_balance_wallet / create_balance_wallet - The deposit wallet that tops up the balance
  • list_balance_activity - Deposits credited to the balance
  • list_pending_balance_deposits - Deposits held before crediting, and why
  • list_whitelisted_wallets - Wallets allowed to fund the balance

Sandbox

  • simulate_route_deposit - Simulate a fiat deposit into a payment route (sandbox only)
  • simulate_transfer_deposit - Simulate the inbound crypto an off-ramp transfer awaits (sandbox only)

API Keys

  • create_api_key - Create a new API key
  • list_api_keys - List all API keys
  • get_api_key - Get API key details
  • revoke_api_key - Revoke an API key

Webhooks

  • create_webhook - Subscribe to events via webhook
  • list_webhooks - List all webhook subscriptions
  • delete_webhook - Delete a webhook subscription
  • list_webhook_deliveries - Recent delivery attempts, status codes and retry state

Hosted server (recommended)

The server runs as a hosted service, so there is nothing to install. Point your MCP client at:

https://mcp.stables.money/mcp

and either send your Stables API key as a bearer token or sign in with OAuth. The key you get during onboarding is all you need: a sti_test_… key reaches sandbox, a sti_live_… key reaches production and moves real money. Clients that can't hold a key (Claude.ai, ChatGPT) sign in instead; see below.

Claude Code

bash
claude mcp add --transport http stables https://mcp.stables.money/mcp --header "Authorization: Bearer ${STABLES_API_KEY}"

Cursor, VS Code, Windsurf and other clients with a url field

json
{  "mcpServers": {    "stables": {      "url": "https://mcp.stables.money/mcp",      "headers": {        "Authorization": "Bearer sti_test_..."      }    }  }}

Codex

toml
[mcp_servers.stables]url = "https://mcp.stables.money/mcp"bearer_token_env_var = "STABLES_API_KEY"

Claude.ai, ChatGPT and other clients that sign in with OAuth

Add https://mcp.stables.money/mcp as a custom connector with no key. The client discovers the server's OAuth endpoints, registers itself, and sends you to a Stables page that asks two things: whether to connect sandbox or production, and permission for that client. You then sign in with your Stables dashboard account (and pick an organisation if you belong to several).

You choose Read only (the default) or Read and make changes; with read only, the agent can look but every tool that changes something is refused until you reconnect and allow changes. Agents connected this way can never create or revoke API keys. Every tool is labelled read-only or destructive, so clients such as Claude ask you before each change. Auth0 asks for your credentials (and a second factor) every time (an existing browser session is never reused for an agent connection) and, when you belong to several organisations, which one to use. On success the server creates an API key in that organisation, named after the client and the account that signed in (for example Claude via MCP ([email protected])), and uses it for every call the client makes. Revoke it any time under Developer → API keys in the dashboard, which disconnects the client. Nothing else is stored: the sign-in token is used once to create the key and then dropped.

  • Claude.ai / Claude Desktop: Settings → Connectors → Add custom connector, URL https://mcp.stables.money/mcp, leave the OAuth client fields on their defaults.
  • ChatGPT: Settings → Connectors → Create (developer mode), MCP server URL https://mcp.stables.money/mcp, authentication OAuth.
  • Claude Code without a key: claude mcp add --transport http stables https://mcp.stables.money/mcp, then /mcp to sign in.

The OAuth endpoints are standard: /.well-known/oauth-protected-resource/mcp, /.well-known/oauth-authorization-server, /authorize, /oauth/token, /oauth/register. Client ID Metadata Documents and dynamic registration are both accepted; PKCE (S256) is required.

Running locally

The same server also runs as a local process over stdio, which is what npx stables-mcp-server does. Use this for a sti_local_… key against your own deployment, or when your client cannot reach the internet.

Installation

bash
# Install from npmnpm install -g stables-mcp-server
# Or clone and build from sourcegit clone https://github.com/stables-money/mcp-server.gitcd mcp-servernpm installnpm run build

Configuration

The server requires the following environment variables:

VariableRequiredDescription
STABLES_API_KEYYesYour Stables API key
STABLES_API_URLNoAPI base URL. Defaults to the environment your key belongs to (see below). Must use HTTPS.

Which environment you're talking to

Stables keys carry their environment: sti_test_… is a sandbox key, sti_live_… is a production key, and the API refuses a key that arrives at the wrong environment. So you don't have to set a URL — leave STABLES_API_URL unset and the key decides:

Your keyWhere requests go
sti_test_…https://api.sandbox.stables.money
sti_live_…https://api.stables.money — real money
sti_local_… or anything elseproduction, unless you set STABLES_API_URL

Setting STABLES_API_URL always wins, which is how you reach staging, dev or a local deployment.

Start with a sandbox key. An agent holding a live key can move real money on your behalf; see agent safety.

Usage

With Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

json
{  "mcpServers": {    "stables": {      "command": "npx",      "args": ["stables-mcp-server"],      "env": {        "STABLES_API_KEY": "your-api-key",        "STABLES_API_URL": "https://api.sandbox.stables.money"      }    }  }}

Then restart Claude Desktop.

With Cursor, Codex, ChatGPT, or another MCP client

Use the same command and environment variables in any MCP-compatible client:

json
{  "mcpServers": {    "stables": {      "command": "npx",      "args": ["stables-mcp-server"],      "env": {        "STABLES_API_KEY": "your-api-key",        "STABLES_API_URL": "https://api.sandbox.stables.money"      }    }  }}

Agent safety

Stables is financial infrastructure. Agents should create quotes, prepare payment objects, and reconcile webhooks, but should require explicit human approval before creating transfers or other money movement. Check customer KYC/KYB status and entitlements before transactional actions, and treat sanctions, unsupported jurisdiction, verification, or compliance failures as hard stops.

With MCP Inspector (for testing)

bash
# Set environment variablesexport STABLES_API_KEY=your-api-keyexport STABLES_API_URL=https://api.sandbox.stables.money
# Run the inspectornpm run inspect

Direct Execution

bash
STABLES_API_KEY=your-api-key node build/index.js

Example Conversations

Creating a customer and getting a quote

User: "Create a customer for [email protected] and get a quote to convert 1000 USDT to EUR"

AI (using MCP tools):

  1. Calls create_customer with email and type
  2. Calls create_quote with source USDT + network, destination EUR + country, and destinationNetwork (swift or bank)
  3. Returns customer details and quote information

Checking transfer status

User: "What's the status of all my pending transfers?"

AI (using MCP tools):

  1. Calls list_transfers with status=created or status=in_progress (statuses are lowercase)
  2. Returns a formatted list of in-flight transfers

Setting up auto-payout

User: "Create a payment route for customer abc123 that pays AUD deposits out to my Polygon USDT wallet 0x..."

AI (using MCP tools):

  1. Calls create_virtual_account with the customer ID, AUD source currency, and the Polygon destination (the payout address is mandatory)
  2. Returns the deposit instructions to share with the customer

Paying out to a European beneficiary

User: "Pay 500 EUR to this German bank account"

AI (using MCP tools):

  1. Collects the extra beneficiary details EUR requires — recipientType, a full address, and dateOfBirth for individuals — before doing anything else
  2. Calls create_quote, then create_transfer once a human approves

Operating the hosted server

The hosted server is the Cloudflare Worker in src/worker.ts (wrangler.toml). It needs:

  • OAUTH_KV: a KV namespace for OAuth clients, grants and tokens. Tokens and secrets are stored as hashes; a grant's API key is encrypted with a key only that grant's token can unwrap.
  • Vars MCP_PUBLIC_URL, AUTH0_DOMAIN, AUTH0_CLIENT_ID: the public origin, the Auth0 custom domain, and the "Stables MCP" regular-web application (callback https://mcp.stables.money/callback).
  • Secret AUTH0_CLIENT_SECRET: that application's secret.
  • Secret MCP_GATEWAY_SIGNING_SECRET: shared with the API gateway's IP authoriser. The Worker has no fixed egress IP, so it signs each forwarded request (X-Stables-Mcp-Signature), and production accepts the signature in place of the source-IP check. Without it, production calls through the hosted server are rejected by the gateway; sandbox is unaffected.
bash
wrangler secret put AUTH0_CLIENT_SECRETwrangler secret put MCP_GATEWAY_SIGNING_SECRET

Without OAUTH_KV the Worker runs bearer-key only, which is how the unit tests exercise it.

Development

bash
# Watch mode for developmentnpm run dev
# Build for productionnpm run build
# Run testsnpm test
# Run linternpm run lint
# Format codenpm run format
# Test with MCP Inspectornpm run inspect

Project Structure

stables-mcp-server/├── src/│   ├── index.ts              # Main entry point│   ├── lib/│   │   ├── stables-client.ts # Stables API client (with retries, timeouts)│   │   └── stables-client.test.ts│   └── tools/│       ├── customers.ts      # Customer management tools (7)│       ├── entitlements.ts   # Entitlement tools (3)│       ├── compliance.ts     # RFI and KYC capability tools (6)│       ├── documents.ts      # Transfer and deposit document tools (4)│       ├── quotes.ts         # Quote tools (2)│       ├── transfers.ts      # Transfer tools (4)│       ├── beneficiaries.ts  # Saved beneficiary tools (4)│       ├── virtual-accounts.ts # Payment route tools (9)│       ├── balances.ts       # Balance tools (6)│       ├── api-keys.ts       # API key tools (4)│       ├── webhooks.ts       # Webhook tools (3)│       └── sandbox.ts        # Sandbox deposit simulation (2)├── package.json├── tsconfig.json├── vitest.config.ts├── eslint.config.js└── README.md

API Reference

Customer Tools

create_customer

Create a new customer for KYC and transfers.

ParameterTypeRequiredDescription
emailstringYesCustomer's email
customerType"individual" | "business"YesType of customer
firstNamestringNoFirst name (for individuals)
lastNamestringNoLast name (for individuals)
companyNamestringNoCompany name (for businesses)
entitlementsstring[]NoEntitlements to request (e.g., ["base_payout", "virtual_account"])
get_customer

Get customer details.

ParameterTypeRequiredDescription
customerIdstringYesCustomer ID
list_customers

List all customers for the authenticated tenant. No parameters required.

get_verification_link

Generate a KYC verification link.

ParameterTypeRequiredDescription
customerIdstringYesCustomer ID
ttlInSecsnumberNoLink expiry in seconds (default: 1800)
successUrlstringNoRedirect URL after successful verification
rejectUrlstringNoRedirect URL after rejected verification
update_customer

Update customer details or entitlements.

ParameterTypeRequiredDescription
customerIdstringYesCustomer ID
emailstringNoUpdated email
phonestringNoUpdated phone
firstNamestringNoUpdated first name
lastNamestringNoUpdated last name
entitlementsstring[]NoUpdated entitlements
update_customer_metadata

Update customer metadata key-value pairs.

ParameterTypeRequiredDescription
customerIdstringYesCustomer ID
metadataobjectYesKey-value pairs to set

Quote Tools

create_quote

Get a quote for currency exchange (crypto to fiat).

ParameterTypeRequiredDescription
fromCurrency"USDC" | "USDT"YesSource cryptocurrency
fromAmountstringYesAmount to convert
fromNetwork"ethereum" | "polygon" | "polygon-amoy"YesBlockchain network
toCurrencystringYesDestination currency (e.g., "EUR")
toCountrystringYesDestination country code (e.g., "GR")
paymentMethodType"SWIFT" | "LOCAL"YesPayment method for payout
get_quote

Get quote details.

ParameterTypeRequiredDescription
quoteIdstringYesQuote ID

Transfer Tools

create_transfer

Execute a transfer from a quote.

ParameterTypeRequiredDescription
customerIdstringYesCustomer ID
quoteIdstringYesQuote ID to execute
accountHolderNamestringNoBank account holder name
ibanstringNoIBAN
accountNumberstringNoBank account number
bankNamestringNoBank name
bankCountrystringNoBank country code
bankCurrencystringNoPayout currency
accountType"savings" | "checking" | "payment"NoAccount type
swiftCodestringNoSWIFT/BIC code
routingNumberstringNoABA routing number (US)
sortCodestringNoSort code (UK)
ifscCodestringNoIFSC code (India)
bsbCodestringNoBSB code (Australia)
get_transfer

Get transfer status.

ParameterTypeRequiredDescription
transferIdstringYesTransfer ID
list_transfers

List transfers with filters.

ParameterTypeRequiredDescription
statusstringNoFilter by status
typestringNoFilter by type
customerIdstringNoFilter by customer
pageSizenumberNoResults per page
pageTokenstringNoPagination token

Virtual Account Tools

create_virtual_account

Create a virtual bank account.

ParameterTypeRequiredDescription
customerIdstringYesCustomer ID
sourceCurrencystringYesCurrency (e.g., "USD")
depositHandlingModestringNo"auto_payout", "hold", or "manual"
destinationAddressstringNoCrypto wallet address
destinationPaymentRailstringNoBlockchain network
destinationCurrencystringNoStablecoin (default: "usdc")
list_virtual_accounts

List virtual accounts for a customer.

ParameterTypeRequiredDescription
customerIdstringYesCustomer ID
statusstringNoFilter by status
limitnumberNoMax results
update_virtual_account

Update virtual account settings.

ParameterTypeRequiredDescription
customerIdstringYesCustomer ID
virtualAccountIdstringYesVirtual account ID
depositHandlingModestringYesNew deposit handling mode
get_virtual_account_history

Get activity history for a virtual account.

ParameterTypeRequiredDescription
customerIdstringYesCustomer ID
virtualAccountIdstringYesVirtual account ID
limitnumberNoMax events to return
eventTypestringNoFilter by event type

API Key Tools

create_api_key

Create a new API key.

ParameterTypeRequiredDescription
namestringYesDescriptive name for the key
metadataobjectNoOptional metadata
list_api_keys

List all API keys.

ParameterTypeRequiredDescription
pageSizenumberNoResults per page
pageTokenstringNoPagination token
get_api_key

Get API key details.

ParameterTypeRequiredDescription
apiKeyIdstringYesAPI key ID
revoke_api_key

Revoke an API key (permanent).

ParameterTypeRequiredDescription
apiKeyIdstringYesAPI key ID

Webhook Tools

create_webhook

Subscribe to events via webhook.

ParameterTypeRequiredDescription
namestringYesWebhook name
urlstringYesHTTPS endpoint URL
eventTypesstring[]YesEvents to subscribe to
secretstringNoHMAC-SHA256 signing secret

Available event types:

  • WEBHOOK_EVENT_TYPE_CUSTOMER_CREATED
  • WEBHOOK_EVENT_TYPE_CUSTOMER_UPDATED
  • WEBHOOK_EVENT_TYPE_KYC_STATUS_CHANGED
  • WEBHOOK_EVENT_TYPE_PAYMENT_CREATED
  • WEBHOOK_EVENT_TYPE_PAYMENT_STATUS_CHANGED
  • WEBHOOK_EVENT_TYPE_QUOTE_CREATED
  • WEBHOOK_EVENT_TYPE_QUOTE_EXPIRED
  • WEBHOOK_EVENT_TYPE_VA_DEPOSIT_RECEIVED
  • WEBHOOK_EVENT_TYPE_VA_PAYOUT_COMPLETED
  • WEBHOOK_EVENT_TYPE_VA_PAYOUT_FAILED
  • WEBHOOK_EVENT_TYPE_ALL
list_webhooks

List all webhook subscriptions. No parameters required.

delete_webhook

Delete a webhook subscription.

ParameterTypeRequiredDescription
webhookIdstringYesWebhook subscription ID

Security

  • API keys are only read from environment variables
  • HTTPS required for API URL (enforced at startup)
  • No debug logging to stderr (would corrupt MCP STDIO transport)
  • All inputs are validated with Zod schemas
  • Request timeouts (30s) prevent hung connections
  • Automatic retries with exponential backoff for transient failures

License

MIT

Links

來源:README.md,提交 8454a4e

工具

55

create_customer

Create customer

Create a new customer in Stables for KYC verification and transfers. Use 'individual' for personal accounts or 'business' for company accounts. Include entitlements like 'base_payout' to enable transactions.

輸入參數dobtypeemailphonetaxIdcountrywebsitelastNamefirstNamemiddleNameacceptTermsaddressCity另有 31 個

get_customer

Get customer

Get details about a specific customer including their verification status

輸入參數includecustomerId必填

list_customers

List customers

List customers for the authenticated tenant. Without pageSize the API returns its default first page; pass pageSize and follow pageToken to read them all

輸入參數pageSizepageToken

update_customer

Update customer

Update customer details, entitlements, or verification information

輸入參數dobemailphonelastNamefirstNamecustomerId必填middleNamecompanyNamenationalityentitlements

update_customer_metadata

Update customer metadata

Update customer metadata key-value pairs

輸入參數metadata必填customerId必填

create_quote

Create quote

Get a quote for a currency exchange: the rate, the fees, and what the customer receives. Quotes are short-lived, so create one immediately before the transfer. Off-ramp converts a stablecoin to fiat (source network required, destination country required); on-ramp converts fiat to a stablecoin (destination address required). Set preview to price without committing.

輸入參數previewmetadatasourceAmount必填sourceNetworksourceCurrency必填destinationAddressdestinationCountrydestinationNetworkdestinationCurrency必填

get_quote

Get quote

Get details about an existing quote including its current status

輸入參數quoteId必填

create_transfer

Create transfer (moves money)

Create a transfer from an active quote. The quote must not be expired. With fundingSource fund_transfer (the default) this only creates the transfer and returns deposit instructions; no money moves until someone deposits the funds. With prefund_balance it debits your organisation's balance and starts the payout immediately, so this moves real money: get explicit human approval first. For payouts in AED, CAD, EUR, GBP, MXN, USD you must also supply recipientType, the full beneficiary address, and dateOfBirth when the recipient is an individual. To pay one of the organisation's saved beneficiaries, set destinationType to beneficiary and pass its beneficiaryId instead of bank details.

輸入參數ibancnapspayIdbicCodebsbCodequoteId必填bankCodebankNameifscCodemetadatasortCodepayIdType另有 23 個

validate_payment_method

Validate payment method

Check bank payout details against the corridor's rules without creating anything. Use it before create_transfer to find out which fields a currency needs (beneficiary address, date of birth, bank codes), instead of spending a short-lived quote on a rejected transfer.

輸入參數ibancnapspayIdbicCodebsbCodenetwork必填quoteIdbankCodebankNameifscCodesortCodepayIdType另有 15 個

get_transfer

Get transfer

Get the current status and details of a transfer

輸入參數transferId必填

list_transfers

List transfers

List transfers with optional filters for status, type, or customer

輸入參數typestatuspageSizepageTokencustomerId

list_beneficiaries

List saved beneficiaries

List the organisation's saved beneficiaries, most recently paid first. Use it to find the beneficiaryId that create_transfer takes with destinationType 'beneficiary'.

輸入參數searchstatusnetworkcurrencypageSizepageToken

get_beneficiary

Get saved beneficiary

Get a saved beneficiary's recipient and bank details, and whether it still passes today's payout rules. Rules tighten over time, so an older beneficiary can need more fields before it can be paid.

輸入參數beneficiaryId必填

create_beneficiary

Save beneficiary

Save a recipient and their bank account for a currency and network, so later transfers can pay it by id. The details are validated exactly as a transfer on that network would be. Saving an account that is already saved returns the existing beneficiary with its details refreshed, and revives it if archived.

輸入參數ibancnapslabelpayIdbicCodebsbCodenetwork必填bankCodebankNameifscCodesortCodepayIdType另有 15 個

archive_beneficiary

Archive saved beneficiary

Archive a saved beneficiary. It leaves active listings and is refused as a transfer destination; transfers already made to it are unaffected. Saving the same account again revives it.

輸入參數beneficiaryId必填

create_virtual_account

Create payment route

Create a payment route (virtual bank account) so a customer can receive fiat deposits that convert to a stablecoin and pay out to a wallet. The payout destination is mandatory: the API refuses a fiat-to-crypto route without one. Deposit handling is set server-side and defaults to auto_payout; change it afterwards with update_virtual_account.

輸入參數customerId必填sourceCurrency必填destinationAddress必填destinationCurrencydestinationPaymentRail必填

list_virtual_accounts

List payment routes

List payment routes (virtual accounts) for one customer, or across every customer when customerId is omitted

輸入參數limitstatuscustomerIdstartingAfter

list_route_whitelist

List payment route allowed senders

List the bank accounts whitelisted to pay into an AUD payment route. Some Australian routes only accept deposits from whitelisted source accounts.

輸入參數customerId必填virtualAccountId必填

add_route_whitelist_account

Add payment route allowed sender

Whitelist an Australian bank account (BSB and account number) to pay into an AUD payment route.

輸入參數enabledbsbNumber必填customerId必填accountNumber必填virtualAccountId必填

update_route_whitelist_account

Update payment route allowed sender

Change or disable a whitelisted source account on an AUD payment route. Send the full record: BSB, account number and status.

輸入參數enabled必填bsbNumber必填customerId必填accountNumber必填sourceAccountId必填virtualAccountId必填

update_virtual_account

Update payment route

Update virtual account settings (e.g., deposit handling mode)

輸入參數customerId必填virtualAccountId必填depositHandlingMode必填

get_virtual_account_history

Get payment route history

Get the activity history for a virtual account (deposits, payouts, etc.)

輸入參數limitcustomerId必填virtualAccountId必填

update_route_destination

Change payment route destination

Change the payout wallet on an existing payment route. Deposits after this point are paid out to the new address; use it when a customer rotates wallets rather than creating a second route.

輸入參數customerId必填virtualAccountId必填destinationAddress必填destinationCurrencydestinationPaymentRail必填

register_route_payid

Register PayID on payment route

Register a PayID for an activated AUD payment route, so payers can send to an email-style alias instead of a BSB and account number. Calling it again on a route that already has one returns the existing PayID.

輸入參數customerId必填virtualAccountId必填

create_api_key

Create API key

Create a new API key for accessing the Stables API. The secret key is only shown once on creation - save it immediately.

輸入參數name必填metadata

list_api_keys

List API keys

List all API keys for the current account

輸入參數pageSizepageToken

get_api_key

Get API key

Get details about a specific API key

輸入參數apiKeyId必填

revoke_api_key

Revoke API key

Revoke an API key. This permanently disables the key and cannot be undone.

輸入參數apiKeyId必填

create_webhook

Create webhook

Subscribe to Stables events via webhook. You'll receive POST requests to your URL when events occur. Event types are dotted and lowercase. Use 'all' to receive everything. Security: Set a secret to enable HMAC-SHA256 signature verification via X-Webhook-Signature header.

輸入參數url必填name必填secreteventTypes必填

list_webhooks

List webhooks

List all webhook subscriptions for the current account

無需輸入參數。

delete_webhook

Delete webhook

Delete a webhook subscription. You will stop receiving events at this endpoint.

輸入參數webhookId必填

list_webhook_deliveries

List webhook deliveries

List recent webhook delivery attempts with their HTTP status and retry state. This is the first place to look when an integration is not receiving events: it shows whether Stables sent them and what the endpoint answered.

輸入參數statuspageSizeeventType

get_balance

Get balance

Get your organisation's stablecoin balance, one entry per asset and network held. Also says whether transfers may be paid from it (transfers_enabled), which create_transfer with fundingSource 'prefund_balance' needs.

無需輸入參數。

get_balance_wallet

Get balance wallet

Get the deposit wallet that tops up your balance on one network, and its status. The address is only present once the status is 'active'.

輸入參數network

create_balance_wallet

Create balance wallet

Create the deposit wallet that tops up your balance on a network. Creation is asynchronous: the first answer is 'creating'; poll get_balance_wallet until it is 'active'. Safe to call again while creation is in flight.

輸入參數network必填

list_balance_activity

List balance activity

List deposits that have credited your balance, newest first, with amount, network, transaction hash and sender.

輸入參數networkpageSizepageToken

list_pending_balance_deposits

List pending balance deposits

List deposits seen on-chain but held before crediting your balance, with the reason: the sender is not a whitelisted wallet, or compliance review.

無需輸入參數。

list_whitelisted_wallets

List allowed wallets

List the wallets whitelisted to deposit into and receive withdrawals from your balance. Only 'active' wallets can. Whitelisting a wallet is done in the dashboard; there is no API for it.

輸入參數statusnetworkpageSizepageToken

list_available_entitlements

List available entitlements

List the entitlements (products and payment rails, e.g. 'aed_local') a customer has not applied for yet, whether each is available to them now, and the verification it needs.

輸入參數customerId必填

request_entitlements

Request entitlements

Apply for one or more entitlements for an existing customer, e.g. to add a payment rail. Check list_available_entitlements first. If Stables needs more verification, the response lists what is missing; send it with submit_entitlement_requirements.

輸入參數customerId必填entitlements必填

submit_entitlement_requirements

Submit entitlement requirements

Send further verification data Stables asked for on a requested entitlement. The fields are those of the customer record in snake_case (e.g. tax_id_number, address, financial_profile, id_documents, proof_of_address_documents); send only what is missing. Documents are base64 data.

輸入參數customerId必填entitlement必填requirements必填

list_rfis

List information requests

List the organisation's compliance requests for information (RFIs), newest first: what Stables compliance needs before it releases a held payment or verification. Open and submitted ones by default. Check this when a transfer or deposit is held, or subscribe to the rfi.* webhooks.

輸入參數typelimitcursorstatuscustomerIdtransactionReferenceId

list_customer_rfis

List customer information requests

List one customer's compliance requests for information (RFIs), with what each requirement needs next.

輸入參數statuscustomerId必填

get_rfi

Get information request

Get one compliance request for information (RFI): why it was raised, its requirements and how to answer each.

輸入參數rfiId必填

get_rfi_evidence_form

Get information request form

Get the form an `evidence` requirement on an RFI asks for (for example the source of funds behind one held payment), with the current submission if one was sent. Build the submit_rfi_evidence answers from its fields and documents.

輸入參數rfiId必填customerId必填requirementId必填

submit_rfi_evidence

Submit information request evidence

Submit the answers and documents an `evidence` requirement asks for, in one request, keyed as get_rfi_evidence_form lists them. Files are base64 data URLs ('data:application/pdf;base64,...'). The requirement moves to 'submitted' for Stables compliance to review; approving it releases the held payment once nothing else is outstanding. Confirm the content with a human before sending: it goes to compliance as the customer's answer.

輸入參數rfiId必填answers必填customerId必填requirementId必填

get_kyc_capabilities

Get KYC capabilities

List the verification capabilities a customer holds (for example proof_of_address), the level that granted each, and when. A `kyc_capability` requirement on an RFI is satisfied once the customer holds that capability.

輸入參數customerId必填

add_document

Add document

Attach a supporting document (invoice, contract or other) to a transfer or a payment route deposit, for example when Stables compliance asks for one. The file goes as a base64 data URL ('data:application/pdf;base64,...').

輸入參數on必填typefileName必填base64Url必填transactionId必填

list_documents

List documents

List the documents attached to a transfer or a payment route deposit, newest first.

輸入參數on必填transactionId必填

get_document_download_url

Get document download link

Get a short-lived link to download a document attached to a transfer or a payment route deposit.

輸入參數on必填documentId必填transactionId必填

delete_document

Delete document

Remove a document from a transfer or a payment route deposit. This cannot be undone, so confirm with a human first.

輸入參數on必填documentId必填transactionId必填

simulate_route_deposit

Simulate payment route deposit (sandbox)

SANDBOX ONLY. Simulate a fiat deposit into a payment route so you can watch the conversion and payout complete without a real bank transfer. Fails on production.

輸入參數amount必填scenariocustomerId必填senderNamesenderReferencevirtualAccountId必填externalDepositId

simulate_transfer_deposit

Simulate transfer deposit (sandbox)

SANDBOX ONLY. Simulate the customer sending the crypto an off-ramp transfer is waiting on, so the transfer can progress to payout without an on-chain payment. Fails on production.

輸入參數transferId必填

版本歷史

5
  1. v2.6.11最新Oct 26, 2026
  2. v2.6.10Oct 26, 2026
  3. v2.6.6Oct 26, 2026
  4. v2.6.4Oct 25, 2026
  5. v2.6.1Oct 25, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分