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.
ParametersdobtypeemailphonetaxIdcountrywebsitelastNamefirstNamemiddleNameacceptTermsaddressCity+31 more
create_customer_onboarding_link
Create customer onboarding link
Create a customer and get a hosted verification link for them in one call, so the customer enters their own KYC/KYB details. An existing customer with the same email is reused (customer_created is false) and the fields sent are ignored. Takes the same fields as create_customer; send what you already know.
ParametersdobtypeemailphonetaxIdcountrywebsitelastNamefirstNamerejectUrlttlInSecsmiddleName+35 more
Get details about a specific customer including their verification status
ParametersincludecustomerIdrequired
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
ParameterspageSizepageToken
get_verification_link
Create verification link
Generate a KYC verification link for a customer. The customer must complete verification before they can make transfers.
ParametersrejectUrlttlInSecscustomerIdrequiredsuccessUrlverificationType
update_customer
Update customer
Update customer details, entitlements, or verification information
ParametersdobemailphonelastNamefirstNamecustomerIdrequiredmiddleNamecompanyNamenationalityentitlements
update_customer_metadata
Update customer metadata
Update customer metadata key-value pairs
ParametersmetadatarequiredcustomerIdrequired
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.
ParameterspreviewmetadatasourceAmountrequiredsourceNetworksourceCurrencyrequireddestinationAddressdestinationCountrydestinationNetworkdestinationCurrencyrequired
Get details about an existing quote including its current status
ParametersquoteIdrequired
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.
ParametersibancnapspayIdbicCodebsbCodequoteIdrequiredbankCodebankNameifscCodemetadatasortCodepayIdType+23 more
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.
ParametersibancnapspayIdbicCodebsbCodenetworkrequiredquoteIdbankCodebankNameifscCodesortCodepayIdType+15 more
Get the current status and details of a transfer
ParameterstransferIdrequired
list_transfers
List transfers
List transfers with optional filters for status, type, or customer
ParameterstypestatuspageSizepageTokencustomerId
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'.
ParameterssearchstatusnetworkcurrencypageSizepageToken
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.
ParametersbeneficiaryIdrequired
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.
ParametersibancnapslabelpayIdbicCodebsbCodenetworkrequiredbankCodebankNameifscCodesortCodepayIdType+15 more
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.
ParametersbeneficiaryIdrequired
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.
ParameterscustomerIdrequiredsourceCurrencyrequireddestinationAddressrequireddestinationCurrencydestinationPaymentRailrequired
list_virtual_accounts
List payment routes
List payment routes (virtual accounts) for one customer, or across every customer when customerId is omitted
ParameterslimitstatuscustomerIdstartingAfter
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.
ParameterscustomerIdrequiredvirtualAccountIdrequired
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.
ParametersenabledbsbNumberrequiredcustomerIdrequiredaccountNumberrequiredvirtualAccountIdrequired
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.
ParametersenabledrequiredbsbNumberrequiredcustomerIdrequiredaccountNumberrequiredsourceAccountIdrequiredvirtualAccountIdrequired
update_virtual_account
Update payment route
Update virtual account settings (e.g., deposit handling mode)
ParameterscustomerIdrequiredvirtualAccountIdrequireddepositHandlingModerequired
get_virtual_account_history
Get payment route history
Get the activity history for a virtual account (deposits, payouts, etc.)
ParameterslimitcustomerIdrequiredvirtualAccountIdrequired
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.
ParameterscustomerIdrequiredvirtualAccountIdrequireddestinationAddressrequireddestinationCurrencydestinationPaymentRailrequired
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.
ParameterscustomerIdrequiredvirtualAccountIdrequired
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.
Parametersnamerequiredmetadata
list_api_keys
List API keys
List all API keys for the current account
ParameterspageSizepageToken
Get details about a specific API key
ParametersapiKeyIdrequired
revoke_api_key
Revoke API key
Revoke an API key. This permanently disables the key and cannot be undone.
ParametersapiKeyIdrequired
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.
ParametersurlrequirednamerequiredsecreteventTypesrequired
list_webhooks
List webhooks
List all webhook subscriptions for the current account
Takes no parameters.
delete_webhook
Delete webhook
Delete a webhook subscription. You will stop receiving events at this endpoint.
ParameterswebhookIdrequired
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.
ParametersstatuspageSizeeventType
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.
Takes no parameters.
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'.
Parametersnetwork
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.
Parametersnetworkrequired
list_balance_activity
List balance activity
List deposits that have credited your balance, newest first, with amount, network, transaction hash and sender.
ParametersnetworkpageSizepageToken
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.
Takes no parameters.
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.
ParametersstatusnetworkpageSizepageToken
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.
ParameterscustomerIdrequired
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.
ParameterscustomerIdrequiredentitlementsrequired
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.
ParameterscustomerIdrequiredentitlementrequiredrequirementsrequired
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.
ParameterstypelimitcursorstatuscustomerIdtransactionReferenceId
list_customer_rfis
List customer information requests
List one customer's compliance requests for information (RFIs), with what each requirement needs next.
ParametersstatuscustomerIdrequired
get_rfi
Get information request
Get one compliance request for information (RFI): why it was raised, its requirements and how to answer each.
ParametersrfiIdrequired
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.
ParametersrfiIdrequiredcustomerIdrequiredrequirementIdrequired
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.
ParametersrfiIdrequiredanswersrequiredcustomerIdrequiredrequirementIdrequired
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.
ParameterscustomerIdrequired
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,...').
ParametersonrequiredtypefileNamerequiredbase64UrlrequiredtransactionIdrequired
list_documents
List documents
List the documents attached to a transfer or a payment route deposit, newest first.
ParametersonrequiredtransactionIdrequired
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.
ParametersonrequireddocumentIdrequiredtransactionIdrequired
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.
ParametersonrequireddocumentIdrequiredtransactionIdrequired
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.
ParametersamountrequiredscenariocustomerIdrequiredsenderNamesenderReferencevirtualAccountIdrequiredexternalDepositId
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.
ParameterstransferIdrequired