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 overallstage 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.veil_kyc_start
Start a KYC identity verification session. Returns a Veil-hosted link the user must open in a browser. Inputs None. Outputsstring
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.veil_kyc_check_status
Poll KYC status after the user has completed the verification form. Inputs None. Outputsstring
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.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. Inputsstring
Optional. Bank account ID. Omit to fetch the primary account.
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.
veil_bank_accounts_list
List all active bank accounts for the authenticated user. The primary account appears first. Inputs None. Outputsarray
Array of bank account records. Each has:
id, scheme, currency, holderName, bankName, suffixLast4, verified, isPrimary, createdAt, updatedAt.string
Error description on failure.
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. Callveil_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.
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