Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.useveil.co/llms.txt

Use this file to discover all available pages before exploring further.

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
status
string
required
authenticated, unauthenticated, or error.
user
object
User profile. Present when status is authenticated. Contains id, email, onboardingStatus, accountType, username, and displayUsername.
kyc
object
KYC summary with status (not_started, in_progress, approved, failed, or error), verifiedAt, and failureReason.
bankAccount
object
Bank account summary with present (boolean), verified, suffixLast4, currency, and holderName.
stage
string
Overall stage: needs_kyc, kyc_in_progress, needs_bank_account, or ready.
reason
string
Error description when status is error.
Example
[calls veil_get_account_status]
→ status: "authenticated", stage: "ready",
  kyc.status: "approved", bankAccount.present: true, bankAccount.suffixLast4: "1234"

veil_kyc_start

Start a KYC identity verification session. Returns a Veil-hosted link the user must open in a browser. Inputs None. Outputs
status
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.
kycUrl
string
Link to open in a browser. Present when status is in_progress.
message
string
Human-readable note about the session.
reason
string
Error description when status is error.
Example
[calls veil_kyc_start]
→ status: "in_progress", kycUrl: "https://veil.co/kyc/link/abc123"
Assistant: Please open this link to complete identity verification: https://veil.co/kyc/link/abc123

veil_kyc_check_status

Poll KYC status after the user has completed the verification form. Inputs None. Outputs
status
string
required
not_started, in_progress, approved, failed, or error.
onboardingStatus
string
Overall account onboarding status.
verifiedAt
string
ISO 8601 timestamp when verification was approved. Null if not yet approved.
failureReason
string
Reason for failure when status is failed.
startedAt
string
When the KYC session was started.
updatedAt
string
When the KYC record was last updated.
reason
string
Error description when status is error.
Example
[calls veil_kyc_check_status]
→ status: "approved", verifiedAt: "2026-05-14T12:00:00Z"

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
id
string
Optional. Bank account ID. Omit to fetch the primary account.
Outputs
present
boolean
required
Whether a bank account was found.
id
string
Account ID.
scheme
string
Payment scheme: eu_sepa, us_ach, us_fedwire, global_wire, br_pix, or uk_local.
currency
string
Account currency (e.g. EUR, USD).
holderName
string
Account holder name.
bankName
string
Bank name. Null if not available.
suffixLast4
string
Last four digits of the account. Null if not available.
verified
boolean
Whether the account has passed verification.
isPrimary
boolean
Whether this is the wallet’s primary payout bank.
createdAt
string
ISO 8601 timestamp when the account was added.
updatedAt
string
ISO 8601 timestamp of the last update.
reason
string
Error description on failure.
Example
[calls veil_bank_account_get]
→ present: true, scheme: "eu_sepa", currency: "EUR",
  holderName: "J. Smith", suffixLast4: "1234", verified: true, isPrimary: true

veil_bank_accounts_list

List all active bank accounts for the authenticated user. The primary account appears first. Inputs None. Outputs
bankAccounts
array
Array of bank account records. Each has: id, scheme, currency, holderName, bankName, suffixLast4, verified, isPrimary, createdAt, updatedAt.
reason
string
Error description on failure.
Example
[calls veil_bank_accounts_list]
→ bankAccounts: [
    { id: "ba_abc", scheme: "eu_sepa", currency: "EUR", suffixLast4: "1234", isPrimary: true },
    { id: "ba_def", scheme: "us_ach", currency: "USD", suffixLast4: "5678", isPrimary: false }
  ]

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
url
string
URL to the bank account form. Open in a browser to add bank details.
reason
string
Error description on failure.
Example
[calls veil_bank_account_get_form_url]
→ url: "https://veil.co/bank-account/add?session=abc123"
Assistant: Please open this link to add your bank account: https://veil.co/bank-account/add?session=abc123

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