place_order
Preview orders in a Schwab account to validate pricing, then place the live order only after explicit user confirmation.
Instructions
Preview or place a live order in one Schwab account.
SAFETY CRITICAL / two-step confirmation flow. This tool NEVER submits a live order on the first call:
With confirm=False (the default, and how this must always be called the first time for any new order), the order is only sent to Schwab's preview/dry-run endpoint, which validates and prices it WITHOUT submitting it to the market. The response contains the proposed order and Schwab's preview details. You MUST show these details to the user in full and obtain their explicit confirmation before calling this tool again.
Only after the user has explicitly confirmed should this tool be called again with the exact same order and confirm=True. Only then is the live order actually submitted to Schwab.
Args: account_number: The plain Schwab account number as shown to the user (not the internal account hash). order: The order object per Schwab's order schema (orderType, session, duration, orderStrategyType, price, orderLegCollection with instruction/quantity/instrument, etc.). confirm: Must be False (default) for the initial preview call, and True only on a follow-up call after the user has explicitly confirmed. Never default this to True.
Returns: If confirm is False: preview details and no order placed. If confirm is True: the submitted order's id and status.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| order | Yes | ||
| confirm | No | ||
| account_number | Yes |