Skip to main content
Six tools cover the onboarding prerequisite for running an offramp. Call veil_get_account_status first — it tells you exactly which step is needed.

veil_get_account_status

Returns the current onboarding stage: KYC status, bank account presence, and an overall stage field that tells the assistant what to do next. Inputs None. Outputs
string
required
authenticated, unauthenticated, or error.
object
User profile. Present when status is authenticated. Contains id, email, onboardingStatus, accountType, username, and displayUsername.
object
KYC summary with status (not_started, in_progress, approved, failed, or error), verifiedAt, and failureReason.
object
Bank account summary with present (boolean), verified, suffixLast4, currency, and holderName.
string
Overall stage: needs_kyc, kyc_in_progress, needs_bank_account, or ready.
string
Error description when status is error.
Example

veil_kyc_start

Start a KYC identity verification session. Returns a Veil-hosted link the user must open in a browser. Inputs None. Outputs
string
required
approved if KYC is already complete. in_progress with a kycUrl if a new session was created. noah_unavailable if the verification service is temporarily down. error on other failures.
string
Link to open in a browser. Present when status is in_progress.
string
Human-readable note about the session.
string
Error description when status is error.
Example

veil_kyc_check_status

Poll KYC status after the user has completed the verification form. Inputs None. Outputs
string
required
not_started, in_progress, approved, failed, or error.
string
Overall account onboarding status.
string
ISO 8601 timestamp when verification was approved. Null if not yet approved.
string
Reason for failure when status is failed.
string
When the KYC session was started.
string
When the KYC record was last updated.
string
Error description when status is error.
Example

veil_bank_account_get

Retrieve a bank account by ID, or the primary account if no ID is provided. Returns a safe view — no IBAN, routing numbers, or other sensitive data. Inputs
string
Optional. Bank account ID. Omit to fetch the primary account.
Outputs
boolean
required
Whether a bank account was found.
string
Account ID.
string
Payment scheme: eu_sepa, us_ach, us_fedwire, global_wire, br_pix, or uk_local.
string
Account currency (e.g. EUR, USD).
string
Account holder name.
string
Bank name. Null if not available.
string
Last four digits of the account. Null if not available.
boolean
Whether the account has passed verification.
boolean
Whether this is the wallet’s primary payout bank.
string
ISO 8601 timestamp when the account was added.
string
ISO 8601 timestamp of the last update.
string
Error description on failure.
Example

veil_bank_accounts_list

List all active bank accounts for the authenticated user. The primary account appears first. Inputs None. Outputs
array
Array of bank account records. Each has: id, scheme, currency, holderName, bankName, suffixLast4, verified, isPrimary, createdAt, updatedAt.
string
Error description on failure.
Example

veil_bank_account_get_form_url

Get a link to the Veil-hosted bank account entry form. The user opens the URL in a browser, fills in their bank details, then returns to the chat. Requires KYC to be approved first. Call veil_kyc_start if veil_get_account_status shows stage: needs_kyc. Inputs None. Outputs
string
URL to the bank account form. Open in a browser to add bank details.
string
Error description on failure.
Example

See also

  • In-chat flow — how onboarding fits into the full offramp conversation
  • KYC — identity verification overview
  • Bank accounts — how bank accounts work in Veil